Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
No4noylis
21 / 12 / 2
Регистрация: 09.01.2015
Сообщений: 40
#1

Чтение и запись внешних файлов - Программирование Android

09.07.2016, 23:31. Просмотров 421. Ответов 3
Метки нет (Все метки)

Добрый вечер! Интересует вопрос, как реализовать в приложении через Android studio чтение и запись текстовых файлов, которые находятся не в каталоге приложения.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2016, 23:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение и запись внешних файлов (Программирование Android):

Подскажите лучший способ хранения данных, чтение/запись файлов
Добрый день. Пишу тренажер для обучению слов (англ-рус). Слова хранятся в файле...

Запись и чтение класса в файл
Необходимо реализовать очень простую задачу, но подходящего примера в инете так...

Чтение и запись JSON файла
Как прочитать и записать, точнее дописать в файл JSON данные? Файл лежит в...

Чтение и запись xml файла на SD-карту
Мне нужно из БД сохранять определенную информацию в файл (это будет инфа...

Чтение и запись данных в локальную БД SQLite
Есть вот такой класс для работы локальной работы с БД. package...

Чтение файлов из res в android studio
Привет! Подскажите кто знает как мне прочитать например текстовый файл из...

3
OlegJV
103 / 103 / 28
Регистрация: 13.03.2016
Сообщений: 474
10.07.2016, 10:36 #2
Получить путь к флешке и все, пиши читай.
0
No4noylis
21 / 12 / 2
Регистрация: 09.01.2015
Сообщений: 40
10.07.2016, 10:56  [ТС] #3
Путь я научился получать. Но, что для этого использовать? openFilelnput() и openFileOutput() не подходят
0
OlegJV
103 / 103 / 28
Регистрация: 13.03.2016
Сообщений: 474
10.07.2016, 13:23 #4
Лучший ответ Сообщение было отмечено No4noylis как решение

Решение

Я обычно использую для файловых операций отдельный класс с такими методами:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static boolean writeExternal(InputStream is, String path) {
        Log.e("FM", "writeExternal " + path);
        if (!isExternalAvailable()) return false;
        File dest = new File(EXT_DIR.getAbsolutePath() + "/" + path);
        FileOutputStream writer = null;
        try {
            if (!dest.exists()) {
                dest.getParentFile().mkdirs();
                dest.createNewFile();
            }
            writer = new FileOutputStream(dest);
            writeFromInputToOutput(is, writer);
            return true;
        }
        catch (IOException e) {
            Log.e("FM", "ERROR " + e);
            return false;
        }
        finally {
            close(writer);
        }
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public static int writeFromInputToOutput(InputStream is, OutputStream os) {
 
        byte[] buffer = new byte[BUFFER_SIZE];
        int bytesRead = EOF_MARK;
        int count = 0;
        try {
            while ((bytesRead = is.read(buffer)) != EOF_MARK) {
                os.write(buffer, 0, bytesRead);
                count += bytesRead;
            }
        }
        catch (IOException e) {
            return -1;
        }
        return count;
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    public static InputStream readExternal(String path) {
        if (!isExternalAvailable()) return null;
        File source = new File(EXT_DIR.getAbsolutePath() + "/" + path);
        InputStream is = null;
        if (source.exists()) {
            try {
                is = new FileInputStream(source);
            }
            catch (FileNotFoundException e) {
                return null;
            }
        }
        return is;
    }
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public static boolean close(Closeable closeable) {
        if (closeable != null) {
            try {
                closeable.close();
                return true;
            }
            catch (IOException e) {
                // e.printStackTrace();
                return false;
            }
        }
        else {
            return false;
        }
    }
Там есть и другие полезные методы, если интересно, пиши в ЛС чтоб не флудить.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2016, 13:23
Привет! Вот еще темы с решениями:

RSS парсер, чтение и последующая запись в объект не осуществляются
При написании парсера произошел ступор:) Подскажите, что пошло не туда ...

Как реализовать чтение txt файлов из папки по порядку?
Здравствуйте!Как реализовать чтение txt файлов из папки по порядку? Т.е. к...

Запись Wav Файлов
Привет, форумчане! Нет ли у кого-нибудь рабочего ( было бы круто если...

Запись картинок и файлов во внутреннюю память
Здравствуйте! Загружаю информацию через Jsoup в AsyncTask. Думаю сохранять её...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru