我尝试在内部存储上的txt文件中保存String的ArrayList。 (出于某种原因,我无法使用SharedPreferences)
但是,我不知道为什么它不起作用。如果我在onStop()
中读取文件,我可以看到我想要保存的字符串,但是如果我退出应用程序并尝试在onCreate()
之后读取该文件为空。但是,如果我退出应用程序并转到/data/data/myapp/file
,我可以看到文件HiddenFormula.txt,其中包含我想要的字符串。
有什么想法吗?
以下是我用来保存和读取文件的代码:
public void saveHiddenFormulas(Context context, ArrayList<String> hiddenFormulas) {
try {
FileOutputStream fileOutputStream = context.openFileOutput("HiddenFormulas.txt", Context.MODE_PRIVATE);
ObjectOutputStream out = new ObjectOutputStream(fileOutputStream);
out.writeObject(hiddenFormulas);
out.close();
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private static ArrayList<String> readSavedHiddenFormulas(Context context) {
ArrayList<String> savedArrayList = null;
try {
FileInputStream inputStream = context.openFileInput("HiddenFormulas.txt");
ObjectInputStream in = new ObjectInputStream(inputStream);
savedArrayList = (ArrayList<String>) in.readObject();
in.close();
inputStream.close();
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
return savedArrayList;
}
答案 0 :(得分:0)
我们可以看到堆栈跟踪或您调用readSavedHiddenFormulas的位置吗?当我得到更多信息时,我会编辑我的答案。
此链接可以为您提供帮助:Reading from a textfile in android studio
查看答案。