我刚开始使用 java 中的 I/O,如果我的怀疑很愚蠢,请原谅,但我发现很难理解这段代码是如何工作的?下面代码中的变量 c 没有递增,那么即使输入流中只有一个字符,while 循环也永远不会终止,并且输出流将连续填充一个字符,但是这段代码实际上可以令人满意地工作,我不明白为什么?
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("xanadu.txt");
out = new FileOutputStream("outagain.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}