Я работаю над мобильным приложением, в котором я сохраню сгенерированные значения в файлах. Я сохранил файл, и файл также сохраняется в папке. Но после выхода из приложения, когда я открываю файл и пытаюсь читать значения, он не читает файл. Фактически файлы хранятся в памяти устройства не на внешнем устройстве. Я дал разрешения в файле манифеста.Хранение файлов и папок с помощью android
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Здесь я прилагаю код. Пожалуйста, объясните мне, какую ошибку я сделал. // здесь я храню две данные
public void setData(String newData , String newTime , String fileName) throws JSONException {
try {
//FileOutputStream fou = openFileOutput("text.txt", MODE_WORLD_READABLE);
File sdcard = android.os.Environment.getExternalStorageDirectory();
File directory = new File(sdcard.getAbsolutePath()+ "/MyDirectory");
directory.mkdirs();
File file = new File(directory,fileName);
FileOutputStream fou = new FileOutputStream(file , true);
OutputStreamWriter osw = new OutputStreamWriter(fou);
try {
osw.write(String.valueOf(newData));
osw.append(',');
osw.write(String.valueOf(newTime));
osw.write(System.lineSeparator());
osw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// Здесь я читаю содержимое файла, которые сохраняются в мобильном устройстве
@TargetApi(Build.VERSION_CODES.KITKAT)
@JavascriptInterface
public String ReadFile(String fileName)
{
String content;
ArrayList<String> arr = new ArrayList<String>();
//int linenumber = 0;
File sdcard = android.os.Environment.getExternalStorageDirectory();
File directory = new File(sdcard.getAbsolutePath()+ "/MyDirectory");
//File directory = new File(sdcard.getAbsolutePath()+ "/MyDirectory");
//File f = new File("");
Log.d(TAG, "acrd checking called");
System.out.println(sdcard.getAbsolutePath());
File file = new File(directory,fileName);
try (InputStream fis = new FileInputStream(file)) {
BufferedReader br=new BufferedReader(new InputStreamReader(fis));
//char stringComma = new Character(',');
while ((content = br.readLine()) != null) {
// convert to char and display it
Log.d(TAG, "called");
arr.add(content);
Log.d(TAG, "called");
System.out.println(arr);
}
br.close();
}
catch (IOException e) {
e.printStackTrace();
}
return arr.toString();
}
Что может быть проблема?
Любые ошибки? Или файл просто пуст? – ToYonos
Ошибка. Его сохранение значений и чтение из него. Но не хранить на внешнем устройстве. И если я закрою приложение и откройте его, и если я попытаюсь прочитать его содержимое, то не прочитав – user3335796