我正在尝试从“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();
}
}
}
答案 0 :(得分:3)
这些东西可以在方法的文档中找到。例如,您尝试查找的方法是read
,来自FileReader
。
以下是read
方法的文档:https://docs.oracle.com/javase/8/docs/api/java/io/InputStreamReader.html#read--
在页面中的"返回"部,
读取的字符,如果已到达流的末尾,则返回-1
请参阅?这就是你如何了解这些事情。
答案 1 :(得分:1)
为什么我们总是通过将结果文件与" -1"进行比较来检查结束文件。是否有任何具体原因?
因为如果你没有,你将永远不会检测到流的结束,你将无休止地循环。
(int readfile = filereadrer.read();)
始终返回unicode值
不,它没有。它返回-1 或一个Unicode值。见Javadoc。
通过这个论点
这不是一个论点。这是一个错误的假设。
-1表示文件结尾的unicode值
没有(a)Unicode值为-1或(b)文件结尾的Unicode值。
如果是
不是。
然后我们如何知道文件结尾的unicode值是" -1"
它不是-1或"-1"
。它是由API 而不是返回的Unicode值的返回值。