从InputStreamReader(JAVA)读取多行

我有一个InputStreamReader对象.我想使用一个函数调用(不创建大量字符串对象)将多行读入缓冲区/数组.有一个简单的方法吗?

解决方法:

首先请记住,InputStreamReader效率不高,因此应将其包装在BufferedReader对象周围,以实现最佳性能.

考虑到这一点,您可以执行以下操作:

public String readLines(InputStreamReader in)
{
  BufferedReader br = new BufferedReader(in);
  // you should estimate buffer size
  StringBuffer sb = new StringBuffer(5000);

  try
  {
    int linesPerRead = 100;
    for (int i = 0; i < linesPerRead; ++i)
    {
      sb.append(br.readLine());
      // placing newlines back because readLine() removes them
      sb.append('\n');
    }
  }
  catch (Exception e)
  {
    e.printStackTrace();
  }

  return sb.toString();
}

请注意,如果达到EOF,则readLine()返回null,因此您应该检查并妥善保管.

上一篇:java写入加速


下一篇:关于 Java IO(一):装饰模式