-1

パス全体を使用して直接リンクしようとしましたが、それでも解決しませんでした。

package eliza;

import java.io.*;

public class Eliza {

public static void main(String[] args) throws IOException {
    String inputDatabase = "src/eliza/inputDataBase.txt";
    String outputDatabase = "src/eliza/outputDataBase.txt";
    Reader database = new Reader();

    String[][] inputDB = database.Reader(inputDatabase);
    String[][] outputDB = database.Reader(outputDatabase);

}
}

リーダークラスは次のとおりです。

package eliza;

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;

public class Reader {

public String[][] Reader(String name) throws IOException {
    int length = 0;
    String sizeLine;

    FileReader sizeReader = new FileReader(name);
    BufferedReader sizeBuffer = new BufferedReader(sizeReader);

    while((sizeLine = sizeBuffer.readLine()) != null) {
        length++;
    }

    String[][] database = new String[length][1];

    return (database);
}
}

これが私のディレクトリの写真です。これらのテキスト ファイルを「eliza」ルート フォルダーに配置することもできます

何か案は?

4

4 に答える 4

2

IDE を使用しているため、完全な正規パスを指定する必要があります。そのはず

String inputDatabase = "C:\\Users\\Tommy\\Desktop\\Eliza\\src\\eliza\\inputDataBase.txt";
String outputDatabase = "C:\\Users\\Tommy\\Desktop\\Eliza\\src\\eliza\\outputDataBase.txt";

IDE はおそらくそのbinフォルダーからバイトコードを実行しており、相対参照を見つけることができません。

于 2013-09-14T05:46:30.430 に答える
0

通常、ソース ディレクトリ ツリーは実行中に存在しないため、実行時に必要なファイルはそこに配置しないでください。ただし、それらをリソースとして使用する場合を除きます。その場合、それらのパス名はパッケージ ルートからの相対パスになります。であり、「src」で始まっていません。データは、FileInputStream 経由ではなく、getResourceXXX() メソッドによってアクセスされます。

于 2013-09-14T07:44:32.470 に答える
0

のような正確なパスを与える

String inputDatabase = "c:/java/src/eliza/inputDataBase.txt";
于 2013-09-14T05:43:25.757 に答える
0

正しいパスを指定していません。再確認してください

試す

{BASE_PATH}+ "Eliza/src/inputDataBase.txt"
于 2013-09-14T05:44:40.860 に答える