gpt4 book ai didi

java - FileInputStream 不以 java 结尾

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:47:23 27 4
gpt4 key购买 nike

当我遇到这段代码时,我正在练习在 Java 中使用字节流:

import java.io.*;
public class CopyBytes_practice {
public static void main(String args[]) throws IOException {
FileInputStream f=null;
FileOutputStream fo=null;
int c;
int d;
try {
f=new FileInputStream("a.png");
fo=new FileOutputStream("b.png");
c=f.read();
while(c != -1){
fo.write(c);
}
} finally {
if (f != null) {
f.close();
}
if (fo != null) {
fo.close();
}
}
}

我使用了一个 35kb 的 a.png 文件和一个 0kb 的 b.png 文件来执行代码,但是代码永远运行 - 在我手动停止 JVM 之前,b.png 的大小达到了 905mb。

我很困惑,为什么没有返回文件结束状态?二进制文件不支持它,还是其他错误?

最佳答案

你错过了一些重要的事情

c=f.read(); // <-- Read in one byte ...
while(c != -1){
fo.write(c);
c=f.read(); // <--- Add this, to Read in the next byte (or -1)...
}

所以你在无限循环,并从你的源中写入第一个字节

关于java - FileInputStream 不以 java 结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20500673/

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