java - Android 应用程序内部数据存储

标签 java android arrays file-io storage

我正在尝试使用 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/

相关文章:

java - SAAJ 与 JAXB 的兼容性

android - 如果存在自定义 View ,Robolectric 无法扩充布局文件

android - 如何在 Android 中从 java 文件创建 EditText

java - ARToolKit - 无法添加 NFT 标记,标记类型未知

java - 如何将 SharedPreferences 携带到同一 Activity 的新函数中? (安卓工作室)

java - LWJGL:Slick:在 3D 世界中绘制字体

javascript - Angular 组件没有看到数组 @Input() 中的变化

Android - Eclipse 在 SDK 和 ADT 更新后损坏

javascript - Bootstrap - 图像到 gif 到模态

java - 检查数组元素是否包含特定值的最佳方法