【问题标题】:separate appended data from the file android从文件 android 中分离附加数据
【发布时间】:2014-08-06 06:49:53
【问题描述】:

我正在使用 FileOutputStream 以附加模式连续将数据写入文件。一切正常,但我想在读取文件时将每个附加流与文件分开。

这是我在 Android 中创建文件并编写它的方式

                        FileOutputStream outputStream = service.openFileOutput("text.txt", Context.MODE_APPEND);
                        outputStream.write(measurement.toString().getBytes());
                        outputStream.close();

它正在成功附加数据,但是当我阅读它时,我不知道如何在附加的字符串之间找到端点。

这是我从文件中读取字符串的代码

            StringBuilder total = new StringBuilder();
            FileInputStream inputStream = service.openFileInput("text.txt");
            BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            while ((line = r.readLine()) != null) {
                total.append(line);
            }
            r.close();
            inputStream.close();

            Log.d(TAG, "File Size: "+total.length());

【问题讨论】:

  • 你在读行但你没有写行。从写线开始。你可以用一个空行或任何你想要的东西来分隔你的追加。
  • 我在这里写行 outputStream.write(measurement.toString().getBytes());
  • 是的。我当然见过。但为什么会是一条线呢?
  • 对不起,我不明白你的意思,我在测量变量中有内容并将其写入 text.txt
  • 我看到了。但我看不到内容。我认为这不是一条线。你必须说明为什么要写一行。你可以举一个内容的例子,这样我们就可以看看它是否是一条线。

标签: android file file-io buffer fileoutputstream


【解决方案1】:

对于未来的参考,我没有尝试过但感谢@greenapps

我只需要添加另一个写入语句来追加

FileOutputStream outputStream = service.openFileOutput("text.txt", Context.MODE_APPEND);
                        outputStream.write(measurement.toString().getBytes());
                        outputStream.write("\n".getBytes());
                        outputStream.close();

为了读取 saparated 字符串,我只是使用 split for java

   String[] parts = total.toString().split("\n");
                    for(int i = 0; i < parts.length; i++) {
                      Log.d(TAG, parts[i]);
                    }
                   deleteFile("text.txt");

【讨论】:

    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多