【Java】【初心者】しりとりプログラム~その③~
おはようございます。
駆け出しプログラマーのakhです。
その②からの続きです。
今回、しりとりプログラムをつくる中で、
⁇でいっぱいだったのが、、、
コンピュータは、外部の辞書データから読み込んで出力する。
ということです。
これを聞いて、「え?自動的にコンピュータが言葉を返してくれないの?」
と思いました。そうです。ゼロから作るから、返してくれるわけありません。
さっそくググるところから始めました(笑)
私が参考にしたサイトはこちらです。↓↓↓↓↓↓↓↓↓
【Java】FileReader、BufferedReaderでテキストファイルを読み込む> https://www.sejuku.net/blog/20924>
Let'sプログラミング >https://www.javadrive.jp/start/stream/index1.html>
いろいろググってみて、分かったこと
・ファイルを読み込むには「FileReaderクラスのreadメソッド」や 「BufferedReaderクラスのreadLineメソッド」がある。 ・「FileReaderクラスのreadメソッド」は、文字を一文字ずつ読んでいくときに使う。 ・「BufferedReaderクラスのreadLineメソッド」は、 テキストファイルを一行ずつ読み込むときに使う。
なので、今回は、「BufferedReaderクラスのreadLineメソッド」
を使うことにしました。
以下、記述したコードです。
try { // ファイルのパスを指定する File file = new File("C:\\辞書\\sakura.txt"); // ファイルが存在しない場合に例外が発生するので確認する if (!file.exists()) { System.out.print("ファイルが存在しません"); return; } // BufferedReaderクラスのreadLineメソッドを使って1行ずつ読み込み表示する FileReader fileReader = new FileReader(file); BufferedReader bufferedReader = new BufferedReader(fileReader); while ((data = bufferedReader.readLine()) != null) { word = data; data = toUpper(data); data = remove(data); //辞書に言葉があるか検索 if(inputstr.charAt(inputstr.length()-1) == data.charAt(0)){ if(!used.contains(word) ) { System.out.println("com:"+data); break; } } } // 最後にファイルを閉じてリソースを開放する bufferedReader.close(); } catch (IOException e) { e.printStackTrace(); }
BufferedReaderクラスのreadLineメソッドを使うときには、
エラー発生時の処理である、「例外」を記述しなければなりません。
ここでいう、エラー発生時とは、
BufferedReaderクラスのメソッドであるreadLine()を実行するときに、
「IOException」という例外が発生する可能性があるのに対処されていません、というエラーです。
try-catchのブロックを使うことで、エラーに対する処理を書くことができました(^O^)/