2015-12-13 3 views
0
PrintWriter p; 
    try { 
     p = new PrintWriter(new FileWriter("xp.mdb")); 
    } catch (FileNotFoundException e) { 
     return; 
    } catch (IOException e) { 
     return; 
    } 

    p.println("mytext"); 
    p.close(); 

Я новичок в программировании на Android и не совсем понимаю, как работает работа с файлами. Я хочу создать новый файл и написать ему текст. Вышеприведенный код работает на Windows, но на Android я просто продолжаю получать FileNotFoundException.Создайте текстовый файл с помощью PrintWriter

Как я могу создать файл, если он не существует?

ответ

3

Вам необходимо поместить файл в internal storage, external storage или (на Android 4.4+) removable storage. Передача голого имени файла не работает на Android.

+0

Я вижу. Однако теперь у меня другая проблема. Метод, который делает запись, является статичным, и я не могу получить контекст. Это безопасно, если я использую абсолютный путь, например /data/data/my.app.package/mytext.txt? Просто попробовал это, и он работает. – Kidades

+1

@ Kidades: «Является ли безопасным использовать абсолютный путь, например /data/data/my.app.package/mytext.txt?» - нет. Это приведет к сбою около ~ 1 миллиарда устройств (все Android 4.2 + планшеты и все Android 5.0+), когда приложение запускается кем-то другим, кроме основного пользователя устройства. Кажется, я вспоминаю дополнительные причины, по которым это не удастся на устройствах Android 6.0+, хотя подробности уберут меня прямо сейчас. Никогда не прокладывайте жесткие пути. – CommonsWare

+0

@ Kidades: «Я не могу получить контекст» - передайте один в статический метод. Все, что вы начали, начиналось с некоторого «Контекста» (активность, сервис и т. Д.). – CommonsWare

Смежные вопросы