如果这个问题有点简单,我深表歉意,但我对我的教授为什么做出以下声明感到有些困惑:
注意 read() 返回一个整数值。使用 int 作为返回类型允许 read() 使用 -1 来指示它已到达流的末尾。您会记得在您对 Java 的介绍中,int 等于 char,这使得使用 -1 很方便。
教授引用了以下示例代码:
public class CopyBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("Independence.txt");
out = new FileOutputStream("Independence.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
这是一门高级 Java 课程,所以很明显在这门课程之前我已经学习了一些入门课程。也许我只是有一个“金发时刻”,但我不明白在什么情况下整数在进行比较时可能等于一个字符。当涉及到 EOF 时,实例方法 read() 返回一个整数值。我完全理解。
任何人都可以阐明粗体的声明吗?