簡體   English   中英

掃描儀使用循環從命令行讀取文本文件,但循環不會中斷

[英]Scanner reading a text file from command line using a loop, but the loop will not break

所以我想從命令行使用 java 讀取 .text 或 .data 文件

java name < filename.data

這是代碼:

        ArrayList<String> input = new ArrayList<>();
        Scanner scanner = new Scanner(System.in);

        while (scanner.hasNextLine()) {
             System.out.println("Reading line");
             String line = scanner.nextLine().trim();
             System.out.println("The line is: " + line);
             if (line.equals("") || line.isEmpty()) {
                 System.out.println("Found blank area");
                  break;
              }  
             System.out.println("Adding to arrayList");
             input.add(line);

        }
        System.out.println("Read in was successful");

“system.out.println("Read in was successfully"); 行從未到達過。似乎用於在讀取后中斷循環的“if”語句也從未到達過。循環似乎也沒有返回到頂部。這是我的輸出(該方法確實成功讀取了我的所有文本文件)

Reading line
The line is: car
Adding to arrayList
Reading line
The line is: mega
Adding to arrayList
Reading line
The line is: bed
Adding to arrayList
Reading line
The line is: stop
Adding to arrayList
Reading line
The line is: game
Adding to arrayList
Reading line
The line is: pots
Adding to arrayList
Reading line
The line is: arc
Adding to arrayList

我希望再運行一次,通過打印出“找到的空白區域”來表明程序已到達文件末尾。

所以它似乎成功地讀取了行,但似乎無法打破。 我的程序沒有崩潰,它只是“掛”在那里,如果有任何意義的話。

它沒有達到if (line.equals("") || line.isEmpty())代碼,因為我認為空文件中沒有空行,我嘗試運行代碼並獲得所需的輸出,輸入文件內容為

輸出

Reading line
The line is: car
Adding to arrayList
Reading line
The line is: mega
Adding to arrayList
Reading line
The line is: bed
Adding to arrayList
Reading line
The line is: stop
Adding to arrayList
Reading line
The line is: game
Adding to arrayList
Reading line
The line is: pots
Adding to arrayList
Reading line
The line is:
Found blank area
Read in was successful

輸入文件

car
mega
bed
stop
game
pots

arc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM