実現したいこと
テキストファイルの単語(レコード = 単語)を読み込み、単語と表示回数を表示したい。
ここに実現したいことを箇条書きで書いてください。
前提
javaの課題でつまずいています
ここに質問の内容を詳しく書いてください。
発生している問題・エラーメッセージ
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "mypackage.TextWord.getWord()" because "tw[i]" is null
at TextWordCounter.main(TextWordCounter.java:18)
該当のソースコード
import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; public class TextWordCounter { public static void main(String[] args) { mypackage.TextWord tw[] = new mypackage.TextWord[6]; BufferedReader br = null; String content; int count = 0; try { File file = new File("word.txt"); br = new BufferedReader(new FileReader(file)); while((content = br.readLine()) != null) { for (int i = 0; i < count ; i++) { if (content.equals(tw[i].getWord())) { tw[i].setCnt(); } else { tw[i].setWord(content); tw[i].setCnt(); } } count++; } } catch (FileNotFoundException fnfe) { // ファイルが見つからない System.out.println("ファイルが存在しません"); } catch (IOException e) { // ファイルが破損している System.out.println("ファイルが破損しています。"); } finally { try { br.close(); } // ファイルがない状態で閉じる catch (NullPointerException npe) { System.out.println("ファイルがない状態で閉じようとしています"); } // その他 catch (IOException e){ System.out.println("閉じる作業に何らかの問題があります。"); } } for(int i = 0 ;i < tw.length; i++) { System.out.println(tw[i].getWord() + "(単語):" + tw[i].getCnt() +"(出現回数)回です。"); } } } package mypackage; public class TextWord { private String word = null; private int cnt = 0; // getter メソッド public String getWord() { return this.word; } public int getCnt() { return this.cnt; } // setter メソッド public void setWord(String word) { this.word = word; } public void setCnt() { this.cnt++; } }
試したこと
tw[]の配列に0等を入れたが、エラーが出でしまった
java.lang.NullPointerException
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。

0 コメント