gpt4 book ai didi

java - 如何从java中的文件中获取类似EOF的符号

转载 作者:行者123 更新时间:2023-12-02 07:51:41 30 4
gpt4 key购买 nike

大家好。

我正在使用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 都可以做到这一点。尝试不同的编辑器。

关于java - 如何从java中的文件中获取类似EOF的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10151598/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com