【发布时间】:2023-04-09 23:56:01
【问题描述】:
如果文件大小 > 8k,为什么读取的 LAST Byte = 0?
private static final int GAP_SIZE = 8 * 1024;
public static void main(String[] args) throws Exception{
File tmp = File.createTempFile("gap", ".txt");
FileOutputStream out = new FileOutputStream(tmp);
out.write(1);
out.write(new byte[GAP_SIZE]);
out.write(2);
out.close();
BufferedInputStream in = new BufferedInputStream(new FileInputStream(tmp));
int first = in.read();
in.skip(GAP_SIZE);
int last = in.read();
System.out.println(first);
System.out.println(last);
}
【问题讨论】:
-
不保证实际跳过的字节数。你必须检查一下。似乎它不想跳过本机文件系统块大小。
标签: java inputstream behavior bufferedinputstream