[英]How to get an smth like EOF symbol from file in java
今天是个好日子。
我正在使用sableCC ,它将Reader对象作为输入。 例如,此代码正常工作:
compile (new StringReader ("print 1"));
因为StringReader在字符串结束后返回-1:
StringReader sr = new StringReader("print 1");
while (sr.ready())
System.out.println (sr.read());
得到:
112
114
105
110
116
32
49
-1
... always -1
但是,当我将相同的字符串写入文件“prog”,没有任何额外的行或字符,并在其上创建一个FileReader时,编译器会在不存在的第二行上中断,因为FileReader不是-1字符,而是返回换行符:
FileReader fr = new FileReader( new File("prog"));
while (fr.ready())
System.out.println (fr.read());
得到:
112
114
105
110
116
32
49
10
从文件阅读器获取与StringReader相同的行为的最短方法是什么,或者SableCC可能允许横向?
如果FileReader
返回一个新的行字符那么这是因为文件中的新行字符,即使你的文本编辑器中不显示它。
不幸的是,一些编辑器在保存时会自动在文本文件中添加一个新的空行。 我认为例如emacs和gedit都这样做。 尝试不同的编辑器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.