假设我正在制作一个程序,该程序需要在我的 .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:好的,我觉得问题没有解决,而且我有点生气,主要是因为我很累。适用于不同程序的代码在上面,其中dir
很简单"text.txt"
这对我正在做的事情不起作用,我不知道为什么。再次,文件在类路径中,所以dir
只有"text.txt"
. 我希望我的 .txt 文件是"files/text.txt"
. 我该怎么做呢?
编辑 3:我不知道我是否提到过,但我的 .txt 文件在我的 jar 内。只是为了消除混乱。所以真的,.jar 文件的路径应该无关紧要,因为我不应该用 .jar 输入它dir
。此外,主类在包main
中,.txt 文件在包中,files
都在同一个名为copy
. 另外,我尝试将 txt 文件移动到与类相同的包中main
,也没有用。
编辑 4:顺便说一下,保存从 jar 读取方法的包是IO
. 因为类io
在包里面IO
。我的所有文件(例如图像和 txt)都在包中files
。只是想我清楚了。我尝试将 txt 文件移动到io
类的包中,并且有效,但如果它在任何其他包中,即使我在其中包含包名dir
也不会工作。关于为什么的任何想法?