0

私はしばらくの間、.txt ファイルから単一の文字列を読み取り、それを整数に変換し、新しい値を追加して、.txt ファイルに再度保存しようとしました。

「fw.write(String.valueOf(amount));」と書くだけで半成功です。ファイルに追加しますが、現在の文字列を新しい値に置き換えるだけです。ファイル内の現在の文字列を取得し、それを整数に変換して、さらに値を追加したいと考えています。

現在java.lang.NumberFormatException: nullエラーが発生していますが、整数に変換しているのでわかりません。エラーは

content = Integer.parseInt(line);

//and

int tax = loadTax() + amount;

ここに私の2つの方法があります

public void saveTax(int amount) throws NumberFormatException, IOException {
    int tax = loadTax() + amount;
    try {
        File file = new File("data/taxPot.txt");
        FileWriter fw = new FileWriter(file.getAbsoluteFile());

        fw.write(String.valueOf(tax));
        fw.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}



public int loadTax() throws NumberFormatException, IOException {

        BufferedReader br = new BufferedReader(new FileReader("data/taxPot.txt"));

        String line = br.readLine();
        int content = 0;

        while (line != null) {
            line = br.readLine();
            content = Integer.parseInt(line);
        }
            br.close();

            return content;
    }

null を返し、追加しない理由を誰でも見ることができますtax + amountか?

4

2 に答える 2

8

ファイルから最後の行を読み取った後、br.readLine()は null を返します。これを に渡しますparseInt()
解析できませんnull

于 2013-10-08T13:39:24.753 に答える
1

交換してみてください:

if (line == null)
  return content;
do {
  content = Integer.parseInt(line);
  line = br.readLine();
} while (line != null);

これにより、行が null になる可能性がある問題が修正されます。

于 2013-10-08T13:42:14.787 に答える