标签: bufferedreader

BufferedReader用于大型ByteBuffer?

有没有办法用BufferedReader读取ByteBuffer而不必先将它变成String?我想通过相当大的ByteBuffer读取文本行,出于性能原因,我想避免将其写入磁盘.在ByteBuffer上调用toString不起作用,因为生成的String太大(它会抛出java.lang.OutOfMemoryError:Java堆空间).我原以为API中会有一些东西将ByteBuffer包装在合适的阅读器中,但我似乎找不到合适的东西.

这是一个缩写代码示例,说明了我在做什么):

// input stream is from Process getInputStream()
public String read(InputStream istream)
{
  ReadableByteChannel source = Channels.newChannel(istream);
  ByteArrayOutputStream ostream = new ByteArrayOutputStream(bufferSize);
  WritableByteChannel destination = Channels.newChannel(ostream);
  ByteBuffer buffer = ByteBuffer.allocateDirect(writeBufferSize);

  while (source.read(buffer) != -1)
  {
    buffer.flip();
    while (buffer.hasRemaining())
    {
      destination.write(buffer);
    }
    buffer.clear();
  }

  // this data can be up to 150 MB.. won't fit in a String.
  result = ostream.toString();
  source.close();
  destination.close();
  return result;
}

// after the process is run, we call this method with the String
public …
Run Code Online (Sandbox Code Playgroud)

java nio bytebuffer bufferedreader

3
推荐指数
1
解决办法
2万
查看次数

将字符串的ArrayList转换为BufferedReader

如何将字符串的ArrayList转换为BufferedReader?我愿意将ArrayList作为输入流,但我想要一种简单的方法将字符串添加到最终将被BufferedReader捕获的数据结构中.

java bufferedreader

3
推荐指数
2
解决办法
3027
查看次数

Android:有效读取logcat输出的方法

如何以最有效的方式读取正在运行的进程的输出

让我解释一下我想要实现的目标.

我试图通过手机上的应用程序读取logcat

我想让logcat中的任何更新立即反映出来并且应用程序是高效的,比如减少电池消耗.

android bufferedreader logcat

3
推荐指数
1
解决办法
8374
查看次数

使用BufferedReader和Scanner读取文本文件

我需要读取文本文件的前n行作为行(每行可能包含或不包含空格).文本文件的其余部分包含未知数量N的以空格分隔的标记(分隔符是空格,制表符和换行符的混合,所有这些都被视为与分隔符完全相同).

我知道如何使用BufferedReader读取行.我知道如何使用Scanner读取令牌.但是,如何以上述方式将这两种不同的阅读模式组合成单个文本文件?

java bufferedreader java.util.scanner

3
推荐指数
1
解决办法
5437
查看次数

从BufferedReader(readLine)读取返回null?

我目前正在读一StringBufferedReader,但无法找到一个方法来做到这一点?

我当然试过了

BufferedReader inStream = null;
inStream = new BufferedReader(new InputStreamReader(client.getInputStream()));
String test = inStream.readLine();
Run Code Online (Sandbox Code Playgroud)

但是,当尝试打印到屏幕时,结果结果为null,即使BufferedReader inStream它等于某种消息.

java string bufferedreader

3
推荐指数
1
解决办法
1万
查看次数

如何读取Java中文件的最后"n"个字节

如何在不使用RandomAccessFile的情况下从文件中读取最后n个字节数.

我的文件中的最后6个字节包含重写文件时的重要信息.我需要编写原始文件,然后将最后6个字节附加到别处.

任何指导?谢谢

java byte file bufferedreader

3
推荐指数
1
解决办法
2626
查看次数

将java readLine()能够读取1GB行

BufferedReader#readLine()尝试用8192字节填充其缓冲区.如果行本身的大小比这大得多,它会抛出异常还是以块的形式读取并打印整行?

java string file-io bufferedreader

3
推荐指数
1
解决办法
477
查看次数

Java的BufferedReader.readLine()是否将整个文件放在内存中?

可以?或者也许只有单独的字符串放在每个readline()上,并且最大的内存空间是最长字符串的音量?

java io file bufferedreader

3
推荐指数
1
解决办法
481
查看次数

在Java中读取非常大的文本文件

我正在使用以下代码读取大文件:

InputStreamReader isr = new InputStreamReader(new FileInputStream(FilePath));
BufferedReader br = new BufferedReader(isr);
while ((cur = br.readLine()) != null)
Run Code Online (Sandbox Code Playgroud)

我可以使用上述代码读取大文件,但我想知道这些读取器在内存中的内部工作方式。inputstreamreader扮演什么角色?逐行读取文件(例如2 GB)时分配了多少块内存?

java inputstream bufferedreader inputstreamreader

3
推荐指数
1
解决办法
632
查看次数

如何在Kotlin中读取纯文本文件?

在Kotlin中,可能会有多种方式读取纯文本文件。

我想知道什么是可能的方式以及如何使用它们。

file text-files bufferedreader kotlin

3
推荐指数
4
解决办法
1703
查看次数