Я открываю внутренний файл и пишу ему так:
final String NEWLINE = new String(newLine+"\n");
FileOutputStream fOut = openFileOutput(fileName+".txt",MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write(NEWLINE);
Мне нужен способ проверить, существует ли внутренний файл (fileName + ". Txt").
Если нет, запишите newLine в файл, иначе добавьте newLine в файл.
Я пытался:
File file = getBaseContext().getFileStreamPath(fileName+".txt");
if(file.exists())...
Но я не знаю внутренний путь к файлу, и он не работает.
Есть предложения?
Подробнее:
private void writeStringToFile(String fileName, String newLine) {
final String NEWLINE = new String(newLine + "\n");
FileOutputStream fOut = null;
OutputStreamWriter osw = null;
try { // catches IOException below
File file = getFileStreamPath(fileName + ".txt");
if (!file.exists()) {
Log.d("DAVID", "File not exist now create him");
fOut = openFileOutput(fileName + ".txt", MODE_WORLD_READABLE);
osw = new OutputStreamWriter(fOut);
} else {
Log.d("DAVID", "File already exist");
osw = new OutputStreamWriter(fOut);
}
// Write the string to the file
osw.append(NEWLINE);
// osw.write(NEWLINE);
// ensure that everything is really written out and close
osw.flush();
osw.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
В первый раз, когда он работает, все в порядке - я получаю: "Файл не существует, теперь создайте его", чтобы войти
Во второй раз я получаю причину FATAL ERROR по нулевому указателю.
Я думаю, что это потому, что OSS получить нулевой FOut
osw = new OutputStreamWriter(fOut);
Но как я могу предотвратить это?