1

File IO を使用して動的にファイルを作成しています 、

FileOutputStream fos = new FileOutputStream("sample.txt");

別のクラスで getClass().getResourceAsStream("sample.txt") を使用して sample.txt をロードしようとすると、ファイルをロードできませんが、Eclipse でプロジェクトを更新すると、ファイルをロードできます。 getResourceStream はファイルをキャッシュしますか?, 必要なのは、ファイルを動的に作成してロードし、それらに対していくつかの操作を実行することです, 何か不足していますか?

Code InputStream is = getClass().getClassLoader().getResourceAsStream("sample.txt");//絶対パス

PS:ビルドパスに新しく作成されたファイルを追加しました

4

1 に答える 1

1

アプリを実行すると、そのファイルがソース ツリー (通常は /src) に作成されます。ただし、bin フォルダーはクラスパス (通常は /bin) にあります。Eclipse の外部で (別の Java プロセスで) ファイルを作成するため、1) ソース フォルダーに表示されて Eclipse に表示され、2) ビルダーがそれを bin フォルダーにコピーするのは、ワークスペースを更新したときだけです。

getResourceAsStream( ) は、ソース ツリー内の静的リソースなど、クラスパス上にあることが保証されているものに使用することを意図しています。動的に生成されたファイルの場合は、他の場所を検索または渡す必要があり、getResourceAsStream( ) を使用しないでください。

于 2013-06-21T14:33:15.323 に答える