3

フォルダーの下(フォルダー内)にいくつかの.txtファイルを置きます。srcresources

Fileしかし、このリソースから実行時に有効なものを作成できません。

String path = this.getClass().getResource("/resources/file.txt").getFile();
File file = new File(path);

if (!file.exists()) {
}

プログラムを日食から実行します。クラスパスには何も入れていません。
テキスト ファイルをファイルに埋め込む必要があり.jarます。アプリを実行するときに、それらのファイルを取得して、ある場所にコピーしたいと考えています。

アップデート

私が行った場合InputStream is = getClass().getResourceAsStream("/resources/file.txt");

私はストリームを取得します!!

4

2 に答える 2

0

あなたはEclipseを使用していて、テキストファイルを「src」パッケージにドラッグアンドドロップしたと言いました。「src」はパッケージではありません。これは単なるファイル システム ディレクトリです。デフォルトでは、Eclipse の Java プロジェクトでは、すべてのソース コードが「src」というディレクトリに保存され、すべての .class ファイルが「bin」というディレクトリに保存されます。getClass().getResource() は、.class ファイルの場所に解決されます。テキスト ファイルを「bin」ディレクトリに移動する必要があります。

あなたのクラスはどのパッケージに入っていますか?

デフォルトのパッケージに非常によく似たコードを書き、Eclipseで実行しました。

import java.io.File;

public class ResourceTest {
    public static void main(String[] args) {
        ResourceTest rt = new ResourceTest();
        rt.openFile();
    }

    public void openFile() {
        String path = this.getClass().getResource("/resources/file.txt").getFile();
        File file = new File(path);

        System.out.println(path);
        System.out.println(file.getAbsolutePath());
        System.out.println(file.exists());
    }
}

次の出力が表示されます。

/C:/Users/rab29/Documents/eclipse/Overflow/bin/resources/file.txt
C:\Users\rab29\Documents\eclipse\Overflow\bin\resources\file.txt
true
于 2011-11-16T13:48:38.677 に答える