openFileOutput无法正常工作

时间:2016-02-26 03:48:11

标签: java android file-io

我正在逐步调试以下代码片段,它不会创建或读取文件,因为它应该也不会抛出任何重复。它存在于我的应用程序的主要活动中。这些代码行有什么问题?

public void onClick(View v) {
  try {
    FileOutputStream outputStream = openFileOutput("test.txt", Context.MODE_PRIVATE);

    try {
      outputStream.write("this is a text".getBytes());

      outputStream.close();

      FileInputStream inputStream = openFileInput("test.txt");
      String string = new String();
      inputStream.read(string.getBytes());
      Toast.makeText(getApplicationContext(), string, Toast.LENGTH_LONG).show();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  } catch (FileNotFoundException e1) {
    // TODO Auto-generated catch block
    e1.printStackTrace();
  }
}

1 个答案:

答案 0 :(得分:0)

  String string = new String();
  inputStream.read(string.getBytes());
  Toast.makeText(getApplicationContext(), string, Toast.LENGTH_LONG).show();

您似乎正在尝试将数据直接读入字符串。你不能这样做。字符串在Java中是不可变的。当您在字符串上调用getBytes()时,您没有获得其内部缓冲区,而是获得了其数据的副本。

相反,您应该读入一个全新的缓冲区,直到inputStream没有更多数据,将其转换为字符串,并显示它。