質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Javadoc

Javadocは、Java言語で記述されたクラスライブラリ、及びアプリケーションについてのパッケージ・クラス・メソッドのHTML形式のAPI仕様書のことを指します。ドキュメント更新の漏れを減らすことができ、最新の状態を把握することが可能になります。

Q&A

解決済

1回答

345閲覧

txtファイル(整数)を読み込んで計算

myongon

総合スコア1

Javadoc

Javadocは、Java言語で記述されたクラスライブラリ、及びアプリケーションについてのパッケージ・クラス・メソッドのHTML形式のAPI仕様書のことを指します。ドキュメント更新の漏れを減らすことができ、最新の状態を把握することが可能になります。

0グッド

1クリップ

投稿2022/10/03 11:39

前提

エラーメッセージから数値に変換しようとしている文字列の形式が正しくないこと、13行目に問題があることは分かりましたが、どう修正したら良いのか分かりません。

実現したいこと

txtファイルを読み込んで、記載された数字の合計値を出したい。

下記、txtファイルの内容です。
15
20
37
58

発生している問題・エラーメッセージ

Exception in thread "main" java.lang.NumberFormatException: null
at java.base/java.lang.Integer.parseInt(Integer.java:614)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at Sum.main(Sum.java:13)

該当のソースコード

java

1import java.io.*; 2class Sum 3{ 4 public static void main(String[]args) 5 { 6 try{ 7 BufferedReader file = new BufferedReader(new FileReader(args[0])); //引数で指定されたファイルから入力する処理 8 String str = file.readLine(); 9 int num = Integer.parseInt(str); 10 int sum = num; 11 while (str != null){ //ファイルの読み取りが終わるまで繰り返す 12 str = file.readLine(); 1313行目) num = Integer.parseInt(str); 14 sum += num; 15 } 16 file.close(); 17 System.out.println(sum); 18 } 19 catch(IOException e){ 20 System.out.println("入出力エラーです。"); 21 } 22 } 23}

試したこと

エラーについて検索したが、改善方法がわからなかった。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

javahack

2022/10/03 12:29

多分myongonさんが考えているよりもループが一回多く回っている。 デバッガで動きを追ってみてはどうでしょうか。 ちゃんと「Java」というタグがあるので修正しましょう。
myongon

2022/10/04 09:29

ご教授いただきありがとうございます。 whileの条件の部分を((str = file.readLine())!= null)のように修正すると、動きました。
guest

回答1

0

ベストアンサー

strのnullチェックは、readline() のあとで行い、nullならループを抜けるようにしましょう。
前にやってもだめですよ。

投稿2022/10/03 13:07

y_waiwai

総合スコア87749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

myongon

2022/10/04 09:31

ご教授いただきありがとうございます。 とてもスッキリしました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問