私はアンドロイドを初めて使っていますが、現在私が覚えている小さな「再生」アプリケーションでいくつかのファイルを保存しようとしています。アプリケーションはシャットダウンされます。実行時に:アプリケーションを再起動するとAndroidの内部ファイルが消えるように見える
file.exists()
file.isFile()
などの方法では、アプリケーションを再起動すると常にfalseが返されます。
これは私がファイルを保存するためにオンラインで見つける方法です:
public void writeToFile(String data, String filePath, Context context){
File file = new File(context.getFilesDir(), filePath);
if(!file.exists()){
try{
file.createNewFile();
}catch(IOException e) {
e.printStackTrace();
Log.e("Exception", "File couldn't be created");
}
}
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput(filePath, Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
}
catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
私は解決策を見つけようとして多くのことをグーグルでてきたが、それらのどれも働きました。ファイルを書き込んだり読み込めるようになってからアプリケーションが動作しているときに動作するようですが、アプリケーションの再起動時にはファイルを見つけることができません。 (file.exists()はfalseを返します)
マニフェストに外部ストレージの読み取りと書き込みの両方の権限がありますか? – Ben
もちろん、再起動後にファイルが存在しないことを確認する方法も表示されます。 – greenapps
'file.createNewFile();'。そのステートメントを削除します。そのナンセンス。 OpenFileOutputはファイルを作成します。 – greenapps