【发布时间】:2020-12-30 16:15:51
【问题描述】:
我对编程很陌生。
在阅读 Oracle Java 教程 中“基本 I/O”中的文章 Byte Streams 时,我遇到了以下代码:
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();
}
}
}
}
我不明白 while 循环的条件。 -1 是消息结束的某种标志吗? FileOutputStream 是否加在最后?
感谢大家的关注。我希望你有一个很棒的西尔维斯特。
【问题讨论】:
-
见docs — “-1 如果到达流的末尾”
-
顺便问一下,什么是“西尔维斯特”?这在英语中并不常见。也许是“新年”?
-
@aguest 一年中的最后一天,拼写为 Silvester。
-
是的,我的意思是新年。它在我的母语中是“Silvester”,我认为它在英语中是一样的,因为它是一个圣人的名字,而且不同语言之间的名字变化不大。
-
令我惊讶的是,以色列的(世俗)除夕也是“西尔维斯特节”。显然他的生日是 12 月 31 日。
标签: java fileinputstream fileoutputstream