为什么在阅读文件时我们总是检查-1?

问题描述 投票:-5回答:2

我试图从“read.txt”读取文件,在读取文件时,我们总是检查-1(line:while(readfile!= - 1)。

为什么我们总是通过将结果文件与“-1”进行比较来检查结束文件。是否有任何具体原因?

(int readfile = filereadrer.read();)总是通过这个参数返回unicode值,-1表示文件结尾的unicode值,如果是,那么我们怎么知道文件结尾的unicode值是“-1 “

public class FilesPractise {

   public static void main(String[] args) throws IOException {
    // TODO Auto-generated method stub

     File file = new File("read.txt");

     file.createNewFile();

     FileReader filereadrer = new FileReader(file);

     int readfile = filereadrer.read();

       while(readfile!=-1){
            System.out.println((char)readfile);

             readfile = filereadrer.read();
    }



}

}
java file unicode filereader
2个回答
1
投票

为什么我们总是通过将结果文件与“-1”进行比较来检查结束文件。是否有任何具体原因?

因为如果你不这样做,你永远不会检测到流的结束,你将无休止地循环。

(int readfile = filereadrer.read();)总是返回unicode值

不,不。它返回-1或Unicode值。见Javadoc。

通过这个论点

这不是一个论点。这是一个错误的假设。

-1表示文件结尾的unicode值

没有(a)Unicode值为-1或(b)文件结尾的Unicode值。

如果是

事实并非如此。

那我们怎么知道文件结尾的unicode值是“-1”

它不是-1或"-1"。它是API返回的标记值,而不是Unicode值。


3
投票

这些东西可以在方法的文档中找到。例如,您试图找到的方法是来自readFileReader

以下是read方法的文档:https://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#read--

在页面的“退货”部分下,

读取的字符,如果已到达流的末尾,则返回-1

看到?这就是你了解这些事情的方式。

© www.soinside.com 2019 - 2024. All rights reserved.