我创建一个文件:
try {
// отрываем поток для записи
OutputStreamWriter writer = new OutputStreamWriter(openFileOutput(FILENAME, MODE_PRIVATE));
BufferedWriter bw = new BufferedWriter(writer);
// пишем данные
bw.write("Содержимое файла");
// закрываем поток
bw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
然后我需要通过邮件发送它 我收到文件并检查可用性
File file = new File(FILENAME);
if(file.exists()) {
...
}
但是由于某种原因,他没有看到它(if 条件没有通过),尽管当我通过流加载它时,一切都很好。
try {
// открываем поток для чтения
BufferedReader br = new BufferedReader(new InputStreamReader(
openFileInput(FILENAME)));
String str = "";
// читаем содержимое
while ((str = br.readLine()) != null) {
Log.d(LOG_TAG, str);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
我认为问题出在文件(文件名)中。告诉一个新手。
事实是调用
new File(FILENAME)假定它FILENAME在目录System.getProperty("user.dir")中,并且openFileOutput()在目录中context.getFilesDir()因此,你看到你所看到的。
您需要检查文件是否存在