1

以下のコード スニペットにより、このエラーが発生します。

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Unhandled exception type FileNotFoundException
String path = "/Users/jfaig/Documents/workspace/my_array/";
BufferedReader in = new BufferedReader(new FileReader(path + "Matrix.txt"));

次のコードでリストされているファイルを確認できるため、パスは有効です。

File dir = new File(path);
String[] chld = dir.list();
if(chld == null){
    System.out.println("Specified directory does not exist or is not a directory.");
    System.exit(0);
} else {
    for(int i = 0; i < chld.length; i++){
        String fileName = chld[i];
        System.out.println(fileName);
    }
}   

Java での OS/X パスに関する多くの記事を確認しましたが、問題を解決するものはありませんでした。問題が OS/X や Eclipse のインストールに固有のものかどうかを確認するために、Windows PC で試してみます。

4

4 に答える 4

6

FileNotFoundException はチェック例外であり、処理する必要があります。ファイルやパスとは関係ありません。

http://www.hostitwise.com/java/java_io.html

于 2012-10-19T20:06:42.170 に答える
3

ファイルについて不平を言うのではなく、ファイルが見つからない場合は処理を適切に行うように求めます。

このシナリオで処理を行わない場合は、メソッド シグネチャをthrows FileNotFoundExceptionたとえば formainメソッドで更新します。次のように記述できます。

 public static void main(String[] args) throws FileNotFoundExcetion {

例外を処理する場合、または上記のコードtry{}catch(FileNotFoundException fnfe){}を以下のようにブロックにラップする場合:

try{
   File dir = new File(path);
   String[] chld = dir.list();
   if(chld == null){
   System.out.println("Specified directory does not exist or is not a directory.");
    System.exit(0);
   } else {
    for(int i = 0; i < chld.length; i++){
      String fileName = chld[i];
      System.out.println(fileName);
    }
   }   
  }catch(FileNotFoundException fnfe){  
    //log error
    /System.out.println("File not found");
 }          
于 2012-10-19T20:12:16.020 に答える
0

Javaにパスを使用してファイル区切り文字を実行させ、2つの引数を指定してファイルコンストラクターを使用します。

 File path = new File("/Users/jfaig/Documents/workspace/my_array");
 File file = new File(path, "Matrix.txt");
 System.out.println("file exists=" + file.exists()); // debug
 BufferedReader in = new BufferedReader(new FileReader(file));

また、前述のように、メソッドでIOExceptionをキャッチまたはスローする必要があります。

于 2012-10-19T20:18:50.543 に答える
0

java.lang.Error: Unresolved compilation problem:の出力中に実際のエラーがリストされていることを意味しますがjavac、ここで繰り返します。Unhandled exception type FileNotFoundException— Java の例外は、明示的にキャッチするか、再スローする必要があります。

于 2012-10-19T20:11:02.040 に答える