0

尝试从标准输入中查找文件结尾时遇到问题。我正在尝试获取所有写入 concil 的数字,直到达到 EOF:

1

2

3

4

EOF

我的代码如下所示:

public void readInput() {
    Scanner scanner = new java.util.Scanner(new InputStreamReader(System.in)).useDelimiter("n");
    ...
    while (scanner.hasNextLine()) {
    ..
    }    
}

所以到达EOF时它不会终止的问题。有任何想法吗?

4

2 回答 2

2

从 读取时System.in,您可以CTRL-Z在 Windows 和CTRL-D*nix 平台上使用EOF.

除非有特定要求,否则通常不需要使用分隔符。这可以简化为:

Scanner scanner = new Scanner(System.in);
while (scanner.hasNextLine()) {
   System.out.println(scanner.nextLine());
   ...
}
于 2012-12-23T18:08:14.020 回答
0

如果需要一些分隔符,绝对使用分隔符是一个好习惯。避免使用CTRL-Zor CTRL-D。在这里,我使用了EOF,作为分隔符End Of Fileend-of-file您可以根据需要修改分隔符。

        Scanner sin = new Scanner(System.in);
        CharSequence end1 = "end-of-file";
        CharSequence end2 = "EOF";
        CharSequence end3 = "End Of File";
        ArrayList<String> Arr = new ArrayList<String>();
        int i =0;

        while(sin.hasNext())
        {
            Arr.add(sin.nextLine());
            if( (Arr.get(i).contains(end1)) == true || (Arr.get(i).contains(end2)) == true || (Arr.get(i).contains(end3) ) == true )
            {
                i++;
                break;
            }
            i++;
        }
于 2015-06-08T01:57:30.807 回答