gpt4 book ai didi

java - Java 填充数组时如何检测 BufferedInputStream 是否结束?

转载 作者:行者123 更新时间:2023-12-01 10:17:15 26 4
gpt4 key购买 nike

    FileInputStream fin = new FileInputStream(path);
BufferedInputStream bin = new BufferedInputStream(fin);
byte[] inputByte1= new byte[500];
byte[] inputByte2= new byte[500];
byte[] inputByte3 =new byte[34];
bin.read(inputByte1);
bin.read(inputByte2);
bin.read(inputByte3);

假设该文件只有 400 字节。我怎样才能检测到它?我知道我可以检查是否 (bin.read(inputByte1)!=500)但是每一行都写起来真的很难看。

我的主要问题是:

如何在填充某些数组之前检测缓冲区是否已完成。

我不想对每个字节执行 bin.read() 并检查 bin.read!=-1

最佳答案

首先,在基于 Windows 的系统上,当您将 \ 用作路径分隔符时,您需要对其进行转义。接下来,您可以使用 FileInputStream (您可以用 BufferedInputStream 包裹)。最后,完成后您应该关闭InputStream(否则您将面临泄漏文件句柄、套接字或其他资源的风险)。您可以使用 try-with-resources statement 。把它们放在一起,它可能看起来像

File f = new File("c:\\test\\test.txt");
try (InputStream is = new BufferedInputStream(new FileInputStream(f))) {
int val;
while ((val = is.read()) != -1) {
System.out.println((byte) val);
}
} catch (IOException ioe) {
ioe.printStackTrace();
}

关于java - Java 填充数组时如何检测 BufferedInputStream 是否结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35823545/

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