gpt4 book ai didi

java - 文件输入流奇怪的行为

转载 作者:行者123 更新时间:2023-12-02 04:15:40 24 4
gpt4 key购买 nike

我有以下简单的代码,它从当前目录中的文件读取到字节数组中,并打印数组的内容(即文件的内容,从 ASCII 32 到 ASCII 126 的 ASCII 可打印字符):

import java.io.FileInputStream;
import java.io.IOException;

class Input {

public static void main(String[] args) throws IOException {
FileInputStream fis=null;
try {
fis=new FileInputStream("file.txt");
int available=fis.available();
byte[] read=new byte[available];
int bytesRead;
int offset=0;
while(offset<read.length) {
bytesRead=fis.read(read,offset,read.length-offset);
if (bytesRead==-1) break;
offset+=bytesRead;
}
System.out.println(read.length);
for (byte b:read) {
int i=b & 0xFF;
System.out.write(i);
System.out.write('\t');
}
}
finally {
if (fis != null)
try {
fis.close();
}
catch(IOException e) {
e.printStackTrace();
}
}
}

}

但是当它运行时,它只打印 64 个字符到标准输出(即使调试字符串在数组中打印 96 个字节,正如它应该的那样......)我不知道我做错了什么。

最佳答案

您需要 flush() System.out,因为如果 autoFlush,它只会在 \n 上刷新 已设置(默认)。请参阅文档 PrintStream和选项。

关于java - 文件输入流奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33346627/

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