Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
#1

Создание файла, запись в файл - не работает код - Android

15.04.2015, 22:33. Просмотров 1084. Ответов 17
Метки нет (Все метки)

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

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if (connection.isClosed()) {
            Context ctx = null;
 
            String dirPath = ctx.getFilesDir().getAbsolutePath() + File.separator + "test";
            File projDir = new File(dirPath);
            if (!projDir.exists())
                projDir.mkdirs();
 
            String fileName = "data.txt";
 
            FileOutputStream outputStream = null;
            try {
                outputStream = ctx.openFileOutput(dirPath+fileName, ctx.MODE_PRIVATE);
                outputStream.write(Message.getBytes());
                outputStream.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
Отладить на данный момент не могу, не позволяют ресурсы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
15.04.2015, 22:53     Создание файла, запись в файл - не работает код #2
CarterSS,
Цитата Сообщение от CarterSS Посмотреть сообщение
Context ctx = null;
String dirPath = ctx.getFilesDir().getAbsolutePath() + File.separator + "test";
можете пояснить данный участок кода?)
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
15.04.2015, 23:05  [ТС]     Создание файла, запись в файл - не работает код #3
Прошу сильно не ругаться, не разобрался в понятии Context. Даже вот так не получаю директорию
Java
1
2
3
4
String dirPath = File.separator + "test";
            File projDir = new File(dirPath);
            if (!projDir.exists())
                projDir.mkdirs();
А здесь ловлю эксепш
Java
1
2
3
4
5
6
7
8
9
10
String fileName = "xztracker_data.txt";
 
            FileOutputStream outputStream = null;
            try {
                outputStream = this.context.openFileOutput(dirPath+fileName, this.context.MODE_APPEND);
                outputStream.write(locationMessage.getBytes());
                outputStream.close();
            } catch (Exception e) {
                StatusActivity.addMessage(context.getString(R.string.sending_message));
            }
Подскажи, как исправить?
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
16.04.2015, 00:47     Создание файла, запись в файл - не работает код #4
this.context.MODE_APPEND разве работает, если файла нет?
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
16.04.2015, 07:47  [ТС]     Создание файла, запись в файл - не работает код #5
fgtmenow, пробовал MODE_PRIVATE, тоже глухо. Ладно файл, хотя бы папку создать...
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
16.04.2015, 08:40     Создание файла, запись в файл - не работает код #6
а пепмишн то есть на работу с картой? оба?
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
16.04.2015, 09:09     Создание файла, запись в файл - не работает код #7
Java
1
Context ctx = getActivity();
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
16.04.2015, 09:29  [ТС]     Создание файла, запись в файл - не работает код #8
fgtmenow, Есть конечно, но я хочу писать в internal.
fgtmenow
75 / 75 / 7
Регистрация: 29.03.2012
Сообщений: 254
16.04.2015, 09:32     Создание файла, запись в файл - не работает код #9
тут тебе рут тогда нужен
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
16.04.2015, 16:35  [ТС]     Создание файла, запись в файл - не работает код #10
Rube, попробую позже и отпишу результат, спасибо

Добавлено через 4 часа 12 минут
Цитата Сообщение от Rube Посмотреть сообщение
Context ctx = getActivity();
Нет, не подходит, не существует в моем классе getActivity().
Может быть так,
Java
1
 Context ctx = this;
?

Добавлено через 30 минут
Чего еще не хватает?

XML
1
2
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (connection.isClosed()) {
            Context ctx = this.context;
            // Create a file in the Internal Storage
            String dirPath = ctx.getFilesDir().getAbsolutePath() + File.separator + "log" +File.separator;
            File projDir = new File(dirPath);
            if (!projDir.exists())
                projDir.mkdirs();
 
            String fileName = "data.txt";
 
            FileOutputStream outputStream = null;
            try {
                outputStream = this.context.openFileOutput(dirPath+fileName, this.context.MODE_PRIVATE);
                outputStream.write(locationMessage.getBytes());
                outputStream.close();
            } catch (Exception e) {
                
            }
        }
    }
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
17.04.2015, 08:00     Создание файла, запись в файл - не работает код #11
Цитата Сообщение от CarterSS Посмотреть сообщение
не существует в моем классе getActivity().
1. Класс наследуется от чего? Как вариант - при вызове конструктора передавать в него context, а в нем присваивать его.
Java
1
2
3
4
5
6
7
public class MyClass {
    Context context;
    
    public MyClass(Context context){
        this.context = context;
    }
}
2. Или попробуйте getApplicationContext()
Vladimirys
298 / 195 / 22
Регистрация: 16.01.2010
Сообщений: 551
20.04.2015, 00:44     Создание файла, запись в файл - не работает код #12
А карта памяти вообще существует на тестируемом устройстве/эмуляторе.
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
20.04.2015, 09:19  [ТС]     Создание файла, запись в файл - не работает код #13
Vladimirys, даже дело не в карте, в родную память не хочет писать, создавать папку...
Vladimirys
298 / 195 / 22
Регистрация: 16.01.2010
Сообщений: 551
20.04.2015, 10:33     Создание файла, запись в файл - не работает код #14
А на карту пишет? Пробуйте записать для начала на карту. Да и собственно, как сказали выше, телефон должен быть рутованный. Вот еще ссылка по теме. http://stackoverflow.com/questions/5...ternal-storage
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
20.04.2015, 11:09     Создание файла, запись в файл - не работает код #15
Vladimirys, да у него context = null.
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
20.04.2015, 15:24  [ТС]     Создание файла, запись в файл - не работает код #16
Rube,
Цитата Сообщение от Rube Посмотреть сообщение
Vladimirys, да у него context = null.
Эта глупость ясна, но остальные варианты не работают

Добавлено через 2 часа 35 минут
Java
1
2
3
4
5
 ContextWrapper cw = new ContextWrapper(context);
            String dirPath =  Environment.getExternalStorageDirectory() + File.separator + "LOGS" +File.separator;
            File projDir = new File(dirPath);
            if (!projDir.exists())
                projDir.mkdir();
Получилось создать папку, но почему то в родной памяти телефона, но не на флеш
androbro
323 / 283 / 59
Регистрация: 17.10.2014
Сообщений: 835
20.04.2015, 15:42     Создание файла, запись в файл - не работает код #17
CarterSS,
Цитата Сообщение от CarterSS Посмотреть сообщение
Получилось создать папку, но почему то в родной памяти телефона, но не на флеш
флешка это Removable а не External
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2015, 15:47     Создание файла, запись в файл - не работает код
Еще ссылки по теме:

Запись в файл по таймеру Android
Запись Файла Android
Запись в файл из IntentService Android
Запись лога в отдельный файл Android
Запись в файл VCard Android

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

Или воспользуйтесь поиском по форуму:
CarterSS
1 / 1 / 1
Регистрация: 10.05.2014
Сообщений: 52
20.04.2015, 15:47  [ТС]     Создание файла, запись в файл - не работает код #18
Цитата Сообщение от androbro Посмотреть сообщение
флешка это Removable а не External
слишком поздно я это понял, спасибо за помощь, все работает так, большего не надо
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 String dirPath =  Environment.getExternalStorageDirectory() + File.separator + "LOGS" +File.separator;
            File projDir = new File(dirPath);
            if (!projDir.exists())
                projDir.mkdir();
 
            String fileName = "data.txt";
 
            try {
                File logfile = new File(dirPath, fileName);
                FileWriter writer = new FileWriter(logfile,true);
                writer.append(locationMessage);
                writer.flush();
                writer.close();
            } catch (Exception e) {
                
            }
Yandex
Объявления
20.04.2015, 15:47     Создание файла, запись в файл - не работает код
Ответ Создать тему
Опции темы

Текущее время: 16:15. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru