Java - 从std输入读取,一次一个char

时间:2010-06-23 18:44:21

标签: java file-io stdin roman-numerals

我无法确定为java程序读取输入的最佳方法。它需要读取罗马数字的各个字符,然后对其执行一些操作。

然而,有几次捕获。 必须从标准输入读取输入,因为正在使用输入重定向。

此外,我需要能够检测到一对CR / LF字符以确定行尾,并使用EOF来确定文件的结尾。

实现这一目标的最佳方法是什么?我已经偷窥了,我发现Scanner没有.nextChar类(可以完美地工作)。

3 个答案:

答案 0 :(得分:1)

只是System.in.read()有问题吗?它返回一个int(简单地将其转换为char)和-1返回EOF。

答案 1 :(得分:0)

Scanner没有nextChar类,因为它无法确定这意味着什么。空白是人物;你应该跳过它们还是阅读它们?

如果扫描仪的语义是您想要的,为什么不使用扫描仪读取整行(使用nextLine),然后遍历该行的字符?如果你不想要intraline空格,只需删除它或忽略它。

答案 2 :(得分:0)

您可以使用FileReader类的read方法(它继承自InputStreamReader类)。这将一次读取一个字符,并在到达文件/流的末尾时返回-1。