我有一个庞大的计划,我花了100多个小时。即使它在Ecipse中运行良好,但在导出它时它也无法工作。我用一个代码制作了一个较小的程序来测试它。我搜索并更改了我的代码,当我导出并运行我的jar文件时,我仍然无法使我的程序工作。它在Eclipse中运行良好。我已经尝试过文件阅读器,流,缓冲,站在我的头上,并改为我在网上看到的有关读取jar文件中包含的文件的任何内容。我是编码的新手,所以有些事情仍然让我困惑。我将.java更改为.zip并查看了各个部分,文件就在那里。
我的阅读代码是
private void readFile(){
try {
System.out.println("starting array");
String[] myarray;
myarray = new String[5];
System.out.println("myarray"+myarray);
url = getClass().getResource("classifyinginfo.txt");
System.out.println("url is "+url);
readbuffer = new BufferedReader(new FileReader(url.getPath()));
line1 = readbuffer.readLine();
line1 = readbuffer.readLine();
line1 = readbuffer.readLine();
line1 = readbuffer.readLine();
{ String splitarray[] = line1.split(",");
firstentry = splitarray[0];
myarray[0]=splitarray[3];
myarray[1]=splitarray[4];
myarray[2]=splitarray[5];
myarray[3]=splitarray[6];
myarray[4]=splitarray[7];
//line2 and 3 readbuffer etc
Arrays.sort(myarray);
for(int i=0; i < myarray.length; i++){
System.out.println(myarray[i]);
textArea.append(myarray[i]+"\n");}
}
System.out.println(Arrays.toString(myarray));
// textArea.setText(Arrays.toString(myarray));
readbuffer.close(); } catch (IOException e) {
System.out.println("we have an error");}
System.out.println("Line: " + line1 );
}
请告诉我如何在Eclipse内外完成这项工作。
答案 0 :(得分:1)
你这样做:
url = getClass().getResource("classifyinginfo.txt");
readbuffer = new BufferedReader(new InputStreamReader(url.openStream()));
line1 = readbuffer.readLine();
FileReader
类可以读取磁盘上的各个文件,这就是全部。但是,一旦有了URL,就不需要使用它了。以这种方式修改,无论文件是否在jar中,程序都将工作。
您实际上可以完全取消URL,只需执行此操作:
readbuffer =
new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("classifyinginfo.txt")));
line1 = readbuffer.readLine();