前提:我使用的工具是idea
1,在jar包中读文件不能用常用的那些方法,用Class.getClass().getResourceAsStream()来读
2,路径要用相对路径
3,该方法返回的是一个字节流InputStream,字节流读取非二进制文件,比如中文,可能出现乱码问题
4,用转换流InputStreamReaer,将字节流转化为字符流,同时可指定读文件的编码类型
就可以了
详细代码如下:
public List getClassName(){
List<String> list = null;
BufferedReader bufferedReader = null;
try {
list = new ArrayList<>();
String filepath ="/collect_work/Classname.txt";
InputStream is = this.getClass().getResourceAsStream(filepath);
InputStreamReader isr = new InputStreamReader(is,"utf-8");
bufferedReader = new BufferedReader(isr);
String s = "";
while ((s=bufferedReader.readLine())!=null){
System.out.println(s);
list.add(s);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
try {
bufferedReader.close();
} catch (IOException e) {
}
}
return list;
}
搞了一下午,终于把jar包搞好了,接下来就把它转变成.exe文件