内部電話メモリにファイルを作成する次のコードがあります。
File fileDir = getFilesDir();
String filedir=fileDir.toString();
String strNewFileName = "information.csv";
String strFileContents = (mes + "," + lat + "," + lng);
File newFile = new File(fileDir, strNewFileName);
try{
boolean filestat = newFile.createNewFile();
FileOutputStream fo =
new FileOutputStream(newFile.getAbsolutePath());
fo.write(strFileContents.getBytes());
fo.close();
}
catch(IOException e)
{Log.v("TEST","Exception on create ");}
System.out.print(OpenFileDialog("information.csv"));
}
そして、ファイルを読み取って印刷するための次のコードがあります。
public ArrayList<String> OpenFileDialog(String file){
//Read file in Internal Storage
FileInputStream fis;
ArrayList<String> list = new ArrayList<String>();
try {
fis = openFileInput(file);
String line = "string";
BufferedReader buffreader = new BufferedReader(new InputStreamReader(fis));
while (( line = buffreader.readLine()) != null) {
list.add(line);
System.out.println(list);
}
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
ただし、コードは、このアプリケーションの実行中に追加された 1 つの文字列を返すだけです。アプリケーションを複数回実行して、ファイルのすべての行を取得したいと考えています。コードが間違っていますか、それともアプリケーションを閉じた後にファイルが空になりますか?