.jar ファイル内の .txt ファイル内のすべての行をコピーする必要があるプログラムを作成しているとしましょう。これはパッケージに含まれており、program.files
text.txt という名前が付けられています。私はインターネットをあちこち探し回っていますが、探しているものが見つかりません。私はこの考えだと思います:
public String readSpecificFromJar(String dir, int line) {
String read = null;
try {
InputStream in = getClass().getResourceAsStream(dir);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(in));
/**
* declare string variable and prime the read
*/
read = bufferedReader.readLine();
for (int i = 1; i < line; i++) {
read = bufferedReader.readLine();
}
bufferedReader.close();
} catch (IOException ioexception) {
Dialogs.fail("Could not read txt file from the JAR!!! Error Code: 06");
}
return read;
}
動作しますが、それを試してみたところ、あらゆる種類のエラーが発生しました。私が問題になると思うのはInputStream in
、 Main メソッドを使用してファイルをそこに配置したい方法を宣言することです。そうならないように、どうすればこれを変更できますか?前もって感謝します!
編集:混乱のため、これを片付けたいと思います。dir
私が入力している文字列の場合files/text.txt
。それはうまくいきません。どうすればこれを修正できますか?
編集 2: OK、問題が伝わっていないように感じます。主にかなり疲れているため、少し悪化しています。別のプログラムで動作するコードは上にありdir
ます。"text.txt"
これは私がやっていることには当てはまりません。理由はわかりません。繰り返しますが、ファイルは CLASSPATH にあるためdir
、"text.txt"
. .txt ファイルを .txt ファイルにしたい"files/text.txt"
。どうすればいいですか?
編集 3: 言及したかどうかはわかりませんが、私の .txt ファイルは私の瓶の中にあります。混乱を解消するだけです。実際には、.jar ファイルのパスは重要ではありませんdir
。また、メイン クラスはパッケージ内main
にあり、.txt ファイルはfiles
すべて、.txt という名前の同じプログラム内のパッケージ内にありますcopy
。また、txtファイルをmain
クラスと同じパッケージに移動しようとしましたが、うまくいきませんでした。
編集 4: ちなみに、jar から読み取るためのメソッドを保持するパッケージはIO
. クラスのようにio
、パッケージ内にありますIO
。画像やtxtなどのファイルはすべてパッケージに含まれていますfiles
。idがそれを明確にしていると思いました。txtファイルをio
クラスのパッケージに移動しようとしましたが、それは機能しましたが、他のパッケージにある場合は、パッケージ名を含めても機能しませんdir
。理由についてのアイデアはありますか?