gpt4 book ai didi

Java:如何定义缓冲区的大小以从 FileChannel 读取所有数据

转载 作者:行者123 更新时间:2023-11-29 08:38:27 29 4
gpt4 key购买 nike

我有一个管道,我需要从中读取数据。但是,正如我在阅读之前所了解的那样,我必须创建一定大小的缓冲区。问题是如何定义缓冲区的大小以从管道读取所有数据?

这是我的代码:

RandomAccessFile aFile     = new RandomAccessFile(PIPE_FILE, "r");
FileChannel inChannel = aFile.getChannel();
ByteBuffer buf = ByteBuffer.allocate(4);//temp 4
while(true){
System.out.println("Size:"+inChannel.size());//returns 0
int bytesRead = inChannel.read(buf);
byte [] bytes=buf.array();
...
buf.clear();
}

最佳答案

与文件不同,管道没有固定大小:据我们所知,管道另一端的编写器可以将通过算法创建的数据推送给您,因此管道流可能是无限的。

你需要创建一个一定大小的缓冲区,通常是几百到几千字节,在循环中从管道中读取,然后在你去的时候处理数据流,或者在循环中将它保存在一个动态分配的缓冲区中.

关于Java:如何定义缓冲区的大小以从 FileChannel 读取所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42040557/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com