讀取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流,在工作中是甲級錯誤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM