簡體   English   中英

Integer.parseInt錯誤:java.lang.Integer.parseInt(未知源)

[英]Integer.parseInt Error : java.lang.Integer.parseInt(Unknown Source)

我正在一個Java項目中,將每個Integer添加到下一行,直到文件中沒有要讀取的行。 因此,要添加它,我必須在行中使用Integer.parseInt(...),然后添加它。 PS:for循環將只跳過包含文件頭的兩行。 並且所有字符串都引用Integer.parseInt()接受的數字。

這是完整的異常錯誤:

Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at prog.Result(prog.java:93)
at prog.main(prog.java:56)

導致異常的代碼是:

public static void Result() throws IOException
    {
        FileReader fileReader = new FileReader(dir+"/"+log_file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        int i;
        for (i=0;i<=2;++i)
        {
            bufferedReader.readLine();
        }
        int result =0;
        while (bufferedReader.readLine() != null)
        {
            result += Integer.parseInt(bufferedReader.readLine());

        }
        System.out.println("The Result Is : " + result);

    }

我認為這是您的問題:

    while (bufferedReader.readLine() != null)
    {
        result += Integer.parseInt(bufferedReader.readLine());

    }

您在那兒兩次調用readLine() 您應該將初始結果存儲在一個變量中,並在parseInt()調用中重復使用該結果。

該塊實際上正在讀取行,而不是一行。

while (bufferedReader.readLine() != null)
{
    result += Integer.parseInt(bufferedReader.readLine());
}

while條件檢查中讀取最后一行時,將發生錯誤,並且該塊的內部隨后將讀取為null ,因為沒有更多行要讀取。

像這樣編寫循環是很習慣的:

String line;
while ((line = bufferedReader.readLine()) != null)
{
    result += Integer.parseInt(line);
}

首先:您應該檢查文件中的數據以確保所有行都是數字。

第二:您應該嘗試在以下行抓到

try {
    result += Integer.parseInt(bufferedReader.readLine());
} catch(Exception ex)

暫無
暫無

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

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