可以說我正在做一個需要我的.jar文件中的.txt文件的所有行復製程序。它位於包program.files
中,它被命名爲text.txt。我一直在尋找互聯網,我找不到我在找什麼。我認爲這個想法:閱讀我的.jar一個文本文件
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: 好吧,我覺得問題沒有得到解決,我有點加重,主要是因爲我很累。爲不同的程序工作的代碼是上面,其中dir
只是"text.txt"
這不適用於我正在做什麼,我不知道爲什麼。再次,該文件是在CLASSPATH所以dir
只是"text.txt"
。我想要我的.txt文件爲"files/text.txt"
。我該怎麼做呢?
編輯3: 我不知道如果我提到這個問題,但我的.txt文件是在我的罐子。只是爲了澄清混亂。所以真的,.jar文件的路徑應該不重要,因爲我不應該在dir
中輸入它。同時,主類是在包main
和.txt文件是在包files
所有命名copy
在同一程序中。另外,我試圖將txt文件移動到與main
類相同的包,也沒有工作。
編輯4: 順便說一句,包含從罐子裏讀取的方法是IO
。如類io
在包IO
內。我的所有文件,如圖像和TXT在包files
。只是認爲id清楚起來。我嘗試將txt文件移動到io
類的包中,並且該類可以工作,但是如果它在任何其他包中,即使我在dir
中包含包名,也不會起作用。任何想法爲什麼?
.txt文件必須在CLASSPATH中。你的JAR文件是否有清單?這應該。將.txt文件的路徑添加到CLASSPATH中,它應該可以正常工作。 – duffymo
更好地添加text.txt的字符編碼,例如'new InputStreamReader(in,「Windows-1252」)'。所以在其他操作系統和國家,一切順利。 'readLine()'在文件結束時爲空,否則行_without_行結束。所以'read + = br.readLine()+「\ n」;'左右。 –
嘗試傳遞「程序/文件/ text.txt」作爲「目錄」,因爲這是包名 –