1

「KFormLList.txt」というJavaのファイルを読み込もうとしています。このプログラムと一緒にデフォルトのパッケージに保存されていますが、実行しようとすると、「エラー:KFormLList.txt(システムは指定されたファイルを見つけることができません)」というエラーメッセージが表示されます。

私は何が間違っているのですか?助けてくれてありがとう。

import java.io.*;

public class VLOCGenerater {

/**
 * @param args
 */
public static void main(String[] args) {
    try {
        //Read the text file "KFormLList.txt"
        FileInputStream fis = new FileInputStream("KFormLList.txt");

        DataInputStream dis = new DataInputStream(fis);
        BufferedReader br = new BufferedReader(new InputStreamReader(dis));
        String strLine;
        int V = 0;
        int LOC = 0;

        while((strLine = br.readLine())!= null ){
            if (strLine.trim().length() != 0){
                System.out.println(strLine);
                V++;
                }
            else {
                LOC++;
            }
        }
        System.out.println("V = " + V);
        System.out.println("LOC = " + LOC);
        dis.close();
     }
     catch (Exception e){
     System.err.println("Error: " + e.getMessage());
    }

}

}
4

4 に答える 4

5

プロジェクトのルート ディレクトリにテキスト ファイルを配置してみてください。

コンストラクターに渡される name パラメーターはFileInputStream、ファイル システム内のファイルへのパス名です。

パス名は、抽象的であるか文字列形式であるかに関係なく、絶対または相対のいずれかです。絶対パス名は、それが示すファイルを見つけるために他の情報を必要としないという点で完全です。対照的に、相対パス名は、他のパス名から取得した情報に関して解釈する必要があります。デフォルトでは、java.io パッケージのクラスは常に現在のユーザー ディレクトリに対して相対パス名を解決します。このディレクトリは、システム プロパティ user.dir によって名前が付けられ、通常は Java 仮想マシンが呼び出されたディレクトリです。

Eclipse を使用していると仮定しました。デフォルトでは、Eclipse はuser.dirをプロジェクトのルートに設定します。他の資料を読むと、Netbeans は同じ規則に従います。

これは、プロジェクトへのパスを出力する次のコードでテストできます。

System.out.println(System.getProperty("user.dir"));

ファイルをディレクトリのルートに配置すると、FileInputStream.

于 2012-12-04T18:37:13.100 に答える
1

NetBeans を使用している場合 (おそらく Eclipse と同様)、ファイルが NetbeansProjects/YourProject/ にあることを確認してください。

プログラムを .jar ファイルにコンパイルした場合は、txt を .jar と同じ場所に置きます。

于 2012-12-04T18:39:21.710 に答える
1

ファイルをプロジェクトの「ルート ディレクトリ」に配置するか、ファイルの「絶対パス」を引数として FileInputStream に指定します。

それが役立つことを願っています。:)。

于 2012-12-04T18:42:31.153 に答える
0

このようにして、プログラムはファイルが作業フォルダーにあることを期待します。つまり、Java を実行する場所です。クラスパス (デフォルト パッケージ) からロードするには、getResourceAsStream を試してください。

于 2012-12-04T18:39:10.000 に答える