質問編集履歴

2 バージョン変更の改善 画像追記

Takahito

Takahito score 66

2015/08/30 02:48  投稿

ファイルを読み込む(JAVA)
Javaを始めたばかりです。「ファイルから読み込んでみよう」のチャプタにてバグが起こってしまいました。
なぜ起こっているのかわからず止まってしまっています。
あいまいな質問となってしまいましたが、よろしくお願いいたします。
また、このコードが載っている教科書に「AutoCloseableインターフェイスを実装しています。」という記述があるのが何かヒントなのかもしれないと思っていますが、自分では解決できません。
![イメージ説明](17d740b80b24a91b627d783be0023374.png)
![イメージ説明](fb23b725333bc59c651b38c0e1b9f5ad.png)
<テキストコード>
package chapter08;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Main3 {
   private static final String LINE_SEPARATOR = System.lineSeparator();
   
   public static void main(String[] args) {
       System.out.println(readFromFile("src/capter08/Main3.java"));
   }
   
   public static String readFromFile(String fileName) {
       File file = new File(fileName);
       StringBuilder sb = new StringBuilder();
       
       FileReader fr = null;
       BufferedReader br = null;
       try {
           fr = new FileReader(file);
           br = new BufferedReader(fr);
           String line;
           while ((line = br.readLine()) != null) {
               sb.append(line).append(LINE_SEPARATOR);
           }
           return sb.toString();
       } catch (FileNotFoundException e) {
           System.err.println(String.format("ファイルが見つかりません: %s", fileName));
           return null;
       } catch (IOException e) {
           System.err.println(String.format("ファイル読み込みに失敗しました: %s", fileName));
           return null;
       } finally {
           closeSilently(br);
           closeSilently(fr);
       }
   }
   
   private static void closeSilently(AutoCloseable target) {
       if (target != null) {
           try {
               target.close();
           } catch (Exception e) {}
       }
   }
}
}
みなさんの改善提案に沿ってググって実行してみたのですが、バージョンを7にして適用を押しました。するとエラーが消えないのですが他に作業が必要なのでしょうか?
![イメージ説明](dcdec648711222134c6de01728d6bdb1.png)
![イメージ説明](844acdbbe10cd20a3c4494743400f516.png)
  • Java

    23703 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1 テキストコードを追加

Takahito

Takahito score 66

2015/08/30 02:25  投稿

ファイルを読み込む(JAVA)
Javaを始めたばかりです。「ファイルから読み込んでみよう」のチャプタにてバグが起こってしまいました。
なぜ起こっているのかわからず止まってしまっています。
あいまいな質問となってしまいましたが、よろしくお願いいたします。
また、このコードが載っている教科書に「AutoCloseableインターフェイスを実装しています。」という記述があるのが何かヒントなのかもしれないと思っていますが、自分では解決できません。
![イメージ説明](17d740b80b24a91b627d783be0023374.png)
![イメージ説明](fb23b725333bc59c651b38c0e1b9f5ad.png)
![イメージ説明](fb23b725333bc59c651b38c0e1b9f5ad.png)
<テキストコード>
package chapter08;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Main3 {
   private static final String LINE_SEPARATOR = System.lineSeparator();
   
   public static void main(String[] args) {
       System.out.println(readFromFile("src/capter08/Main3.java"));
   }
   
   public static String readFromFile(String fileName) {
       File file = new File(fileName);
       StringBuilder sb = new StringBuilder();
       
       FileReader fr = null;
       BufferedReader br = null;
       try {
           fr = new FileReader(file);
           br = new BufferedReader(fr);
           String line;
           while ((line = br.readLine()) != null) {
               sb.append(line).append(LINE_SEPARATOR);
           }
           return sb.toString();
       } catch (FileNotFoundException e) {
           System.err.println(String.format("ファイルが見つかりません: %s", fileName));
           return null;
       } catch (IOException e) {
           System.err.println(String.format("ファイル読み込みに失敗しました: %s", fileName));
           return null;
       } finally {
           closeSilently(br);
           closeSilently(fr);
       }
   }
   
   private static void closeSilently(AutoCloseable target) {
       if (target != null) {
           try {
               target.close();
           } catch (Exception e) {}
       }
   }
}
  • Java

    23703 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る