
正文
读取jar包里面的文件
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
一、最近做项目的时候,师兄要求读取jar包里面的java文件。在网上查了各种文件以后,终于完成了,在这里和各位朋友分享一下。
(一)找到jar包所在的位置。
String path="XXXXX";
File file=new File (path);
(二)找到jar包所在的位置以后,通过JarFile这个类读取文档中的内容,获得所有的文件夹名字
JarFile jarFile = new JarFile(new File(filePath));
Enumeration<JarEntry> entries = jarFile.entries(); while (entries.hasMoreElements()) { JarEntry entry = entries.nextElement();
String entryName = entry.getName();
//读取文件后缀名为.java的文件
if (!entry.isDirectory() && entryName.endsWith(".java")) { 读取操作。。。。。。 } }
三、获取jar包文件里面的文件IO流
//filePath是jar文件位置,name是jar文件里面文件的路径,相当于上面代码框中的entryName
public InputStream getJarInputStream(String filePath, String name)
throws Exception {
URL url = new URL("jar:file:" + filePath + "!/" + name);
JarURLConnection jarConnection = (JarURLConnection) url
.openConnection();
InputStream in = jarConnection.getInputStream(); return in;
}
四、读取文件
public String readFile(String filePath, String entryName, Integer index) {
InputStream in = null;
BufferedReader br = null;
StringBuffer sb = null; try {
in = getJarInputStream(filePath, entryName);
br = new BufferedReader(new InputStreamReader(in, "UTF-8")); String con = null; sb = new StringBuffer();
while ((con = br.readLine()) != null) { if (before <= row && row < after) { sb.append(con);
}
} } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (in != null)
in.close(); } catch (IOException e) {
e.printStackTrace();
}
} return sb.toString();
}
注意:关闭IO流,在工作中是甲级错误







