次のコードを使用して、デバイスで実行されているアプリケーションの内部ストレージにファイルを保存しました。
private void writeToFile(String s){
try { // catches IOException below
FileOutputStream fOut = openFileOutput("samplefile.txt",
MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write(s);
osw.flush();
osw.close();
FileInputStream fIn = openFileInput("samplefile.txt");
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[s.length()];
isr.read(inputBuffer);
String readString = new String(inputBuffer);
Log.i("String", readString);
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
logcatは、ファイルが正しく書き込まれていることを示しています。ただし、EclipseでFileExplorerを使用してデバイス上のファイルにアクセスしようとすると、ファイルが本来あるべき場所( "/data/data/your_project_package_structure/files/samplefile.txt")に表示されません。内部データフォルダが空であることがわかりました。何が悪かったのか?
そのファイルを読み取り、Pythonで記述された別のアプリケーションにフィードするためのデータを取得したいと思います。出来ますか?
PS:エミュレータではなく、デバイスでアプリケーションをテストしています。