gpt4 book ai didi

java - 本地文件中的 RandomAccessFile.read() 是否保证读取确切的字节数?

转载 作者:太空宇宙 更新时间:2023-11-04 06:10:15 24 4
gpt4 key购买 nike

目前我的代码工作正常,但我应该将 raf.read() 替换为 raf.readFully() 以确保读取所有字节吗?

            raf = new RandomAccessFile(doc.getFilePath()+"/"+doc.getName(),"r");
raf.seek((partNumber-1)*partitionSize);
byte[] buf = new byte[partitionSize];
int bytesRead = raf.read(buf); //ensure myself by readFully or not?
System.out.println("expected="+partitionSize+" readed="+bytesRead);

我的建议如下 - 当从本地资源(如文件)读取时,一个 read() 调用无论如何都会返回指定的字节数。当 read() 不能保证读取所需的字节数时,readFully 在从网络流读取时很有用。正确吗?

最佳答案

read 方法不保证读取所有请求的字节(即使它们存在于文件中)。实际行为将取决于底层操作系统和文件系统。例如,当由 NFS 支持时,您可能更有可能无法在一次调用中获取所有请求的字节。

如果您想保证在一次调用中获取所有请求的字节,则必须使用 readFully

关于java - 本地文件中的 RandomAccessFile.read() 是否保证读取确切的字节数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28831729/

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