0

ファイルの読み取りに関するサンプルを作成していました。txtファイルをプロジェクトフォルダーに入れてこのコードを書きましたが、例外が発生FileNotFoundし、閉じようとするとdataInputStreamコンパイルエラーが発生します(コメントアウトされた行)。私はすべてを台無しにしたと思う

   String  str=null;
   try {
       FileInputStream fileInputStream=new FileInputStream("myfile.txt");
       DataInputStream dataInputStream=new DataInputStream(fileInputStream);
       BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(dataInputStream));
       str=bufferedReader.readLine();

       } catch (Exception e) {
           System.out.println(e.getMessage());
       }

       System.out.println(str);
       //dataInputStream.close();
4

3 に答える 3

2

Java は相対パスに非常にうるさいので、`"myfile.txt" はプロジェクトが構築されている場所ならどこにでも存在するはずです。

のクローズに関してdataInputStreamは、対象外です。try ブロックの外で宣言します。いずれにせよ、実際のclose()呼び出しを finally ブロックに配置して、常に実行されるようにすることをお勧めします (参照が null でない場合)。

于 2013-04-11T18:48:38.403 に答える
0

ギレルモに同意

myfile.txt はクラスパスにある必要があります。

このコードをコマンド ラインで実行する場合は、このコードが実行されるフォルダーまたは同じパッケージに配置する必要があります。

datainput ストリームに関しては対象外です

于 2013-04-11T18:55:07.347 に答える