首頁 >Java >如何迭代並將 Text.txt 中的下一行列印到 NetBeans 中的輸出控制台?

如何迭代並將 Text.txt 中的下一行列印到 NetBeans 中的輸出控制台?

王林
王林轉載
2024-02-22 13:40:11981瀏覽

php小編香蕉帶來的java問答,今天我們來探討如何在NetBeans中實現迭代並將Text.txt檔案中的下一行內容列印到輸出控制台。這個問題涉及到文件讀取和迭代的技巧,透過合理的程式碼實現,可以輕鬆完成這項任務。讓我們一起來看看具體的解決方法吧!

問題內容

我試圖從文字檔案中讀出我的文字註釋,但由於 nosuchelementexception,它似乎無法迭代到下一行程式碼。我該如何解決這個問題?

我先道歉,由於我缺乏寫作禮儀,因為我是這個網站的新手。但儘管如此,這是我的程式碼:

public class Praktikum11_4 {
    private Scanner input;
   
    public void membukaFile()
    {
        try {
            input = new Scanner(new File("favouriteplace.txt"));
        }   catch(FileNotFoundException e)
        {
            System.err.print("File yang anda cari" +
                    "Tidak ditemukkan");
            System.exit(1);
        }   catch(IllegalStateException e)
        {
            System.err.print("Error membaca File");
        }
        
    }
    
    public void membacaData()
    {
        try{
            while(input.hasNext())
            {   
                for (int i = 1 ; i <= 7 ; i++ )
                {
                    // Scan the line
                    String location = input.nextLine();
                    double rating = input.nextDouble();
                    System.out.printf(i+". " + "%s dengan rating %f\n", location, rating);
                }
            }
        }catch (NoSuchElementException e)
        {
            System.err.println("Element not found ERROR 101 ");
        }
    }
    
    public void menutupFile()
    {
        if (input != null)
        {
            input.close();
            System.out.print("File berhasil untuk ditutup");
        }
    }
    
    public static void main(String[] args)
    {
        
    }
    

}

這是我嘗試迭代並列印到輸出控制台的檔案:

由資料組成的文件](https://i.stack.imgur.com/dj2kc.png)

這是我得到的輸出:

umn 學生最喜歡的五個地方

  1. bungkushin dengan 評分 4.300000

找不到元素 error 101 file berhasil untuk ditutup

因此,這是我期望的輸出:

預期輸出](https://i.stack.imgur.com/ntkv4.png)

解決方法

發生nosuchelementexception 是因為您在for 迴圈內呼叫input.nextdouble () ,而沒有檢查輸入檔中是否有下一個可用的double 值。在嘗試讀取之前,您應該檢查是否存在下一個雙精度值。另外,無論是否發生異常,都應該正確處理異常並關閉檔案。

public void readData() {
try {
    int i = 1;
    while (input.hasNext()) {
        String location = input.nextLine();
        if (input.hasNextDouble()) {
            double rating = input.nextDouble();
            input.nextLine(); // Consume the newline character after the double
            System.out.printf("%d. %s with rating %.2f\n", i, location, rating);
            i++;
        } else {
            System.err.println("Invalid rating format for location: " + location);
            input.nextLine(); // Consume the entire line to move to the next line
        }
    }
} catch (NoSuchElementException e) {
    System.err.println("Element not found ERROR 101");
}
}

確保在呼叫 readdata() 之前呼叫 openfile() 開啟文件,並在完成後呼叫 closefile() 關閉文件。另外,不要忘記新增 main 方法來執行程式。

以上是如何迭代並將 Text.txt 中的下一行列印到 NetBeans 中的輸出控制台?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除