Java:字节流中的While循环

Java:字节流中的While循环,java,file-io,while-loop,Java,File Io,While Loop,有人能解释为什么循环检查条件是否不同于-1吗 while ((c = in.read()) != -1) { out.write(c); } 见此: 当没有更多的字节可读取时,read方法返回条件部分中的-1循环(Java requireboolean子句) c=in.read()。因此,您需要将其与某个值进行比较(在您的示例中,-1表示不再读取字节),该值生成布尔值作为停止条件 while ((c = in.read()) != -1) 当到达流的末尾时,read方法返回-1。该条

有人能解释为什么循环检查条件是否不同于-1吗

while ((c = in.read()) != -1) {
    out.write(c);
}
见此:


当没有更多的字节可读取时,read方法返回条件部分中的-1

循环(Java require
boolean
子句)

c=in.read()。因此,您需要将其与某个值进行比较(在您的示例中,
-1
表示不再读取字节),该值生成
布尔值作为停止条件

while ((c = in.read()) != -1)

当到达流的末尾时,
read
方法返回-1。该条件将
read
的返回值分配给c,并检查
c
是否为-1。如果为-1,则到达流结束,否则不到达。

因为当到达流结束时,
c
将为-1。阅读
InputStream的文档。阅读
。(尽管如此,这是一种将InputStream复制到OutputStream的低效方法…)无论如何,为了回答这个问题,-1表示EOF(文件结束),我们描述了这种方法