2

スキャナークラスは、NetBeansIDEを使用しているファイルを見つけることができず、test.txtはフォルダパスにあります:D:\ netbeansprojectworks \ ReadFile \ src \ readfile \ test.txt

同じフォルダにreadfile.javaが存在します。コードは以下の通りです。見つからないファイルを生成します。

package readfile;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;


public class ReadFile {

    public static void main(String[] args) throws IOException , FileNotFoundException 
    {  
        Scanner scanner = new Scanner(new File("test.txt"));  

        while (scanner.hasNextLine())  
            System.out.println(scanner.nextLine());  
    }  
}

出力:-

run:
Exception in thread "main" java.io.FileNotFoundException: test.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:106)
    at java.util.Scanner.<init>(Scanner.java:636)
    at readfile.ReadFile.main(ReadFile.java:14)
Java Result: 1
BUILD SUCCESSFUL (total time: 0 seconds)
4

6 に答える 6

6

Scannerクラスを作成する前に、以下を追加します。

System.out.println(new File("test.txt").getAbsolutePath());

JVMがファイルを見つけることを期待している場所と、それが期待しているフォルダーであるかどうかも表示されます。

また、ファイルのアクセス許可を確認してください。ただし、デフォルトのJVMディレクトリに問題がある可能性があります。

于 2012-07-08T17:14:24.533 に答える
3

ああ、あなたは完全なファイルパスを指定していません。ファイルパスが省略されている場合(つまり)、javaは、ファイルがそれを実行しているソースコードと同じディレクトリtest.txtにあると想定します。したがって、フルパスを指定するか、ファイルを移動してください。

于 2012-07-08T17:14:43.213 に答える
1

それをReadFileディレクトリ、つまりプロジェクトのルートに移動します

于 2012-07-08T17:13:58.753 に答える
0

test.txtファイルは、ファイルが存在するフォルダーにある必要がありますreadfile.class

于 2012-07-08T17:14:16.663 に答える
0

この問題はかなり前に報告されていることは承知していますが、同様の障害に直面し、提案された解決策が機能しなかったため、別の回答を投稿することにしました。

try... catch句を使用してみてください。たとえば、その場合にのみ、私のコードはNetBeansによってコンパイルされます。

于 2020-02-06T16:20:58.940 に答える
-1

私にとってうまくいったのは、ファイル名から.txt拡張子を削除し、。を使用することでした。現在のディレクトリを指定します(以下に示す例)。

Scanner scanner = new Scanner(new File("./test"));
于 2016-03-02T22:27:07.700 に答える