配列に値がを入れようとするとエラーが出てしまう

実現したいこと

テキストファイルの単語(レコード = 単語)を読み込み、単語と表示回数を表示したい。 
ここに実現したいことを箇条書きで書いてください。

前提

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 コメント