我正在尝试使用 Android 的内部存储器将长整型数组保存为文本文件,然后在不同的 Activity 中访问该数组。在注意到它被破坏后,我在下面的这段代码中隔离了问题。
long[] timings = {200, 400, 600, 1400};
try {
FileOutputStream fos = openFileOutput("timings", Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(Arrays.toString(timings));
osw.close();
FileInputStream fis = openFileInput("timings");
InputStreamReader isReader = new InputStreamReader(fis);
char[] buffer = new char[timings.length];
isReader.read(buffer);
textField.setText(Arrays.toString(buffer));
fis.close();
} catch (IOException e1) {
e1.printStackTrace();
}
设置为显示从文件中读取的内容的文本字段具有以下结果:
[[,2,0,0]
我预期的结果是上面的原始数组。我在这里做错了什么?如有任何帮助或建议,我们将不胜感激。
最佳答案
替换这个:
InputStreamReader isReader = new InputStreamReader(fis);
char[] buffer = new char[timings.length];
isReader.read(buffer);
textField.setText(Arrays.toString(buffer));
用这个:
DataInputStream in = new DataInputStream(fis);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String sTemp1 = "", sTemp2 = "";
while ((sTemp1 = br.readLine()) != null) {
sTemp2 = sTemp1;
}
in.close();
textField.setText(sTemp2);
希望对您有所帮助。
关于java - Android 应用程序内部数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8177914/