0

他のプロジェクト (プロジェクトの呼び出し元) からアクセスしたい .txt ファイルを含むプロジェクト (プロジェクト ソース) があります。呼び出し元はソースに依存しています。したがって、呼び出し元はソースを .jar として表示する必要があります。質問ですが、この .jar にアクセスして .txt ファイルを取得する必要がありますが、アクセスできません。私は次のように考えてみました: getClass().getResourceAsStream("classpath:/cc.txt"); InsputStream と getClass().getResource("cc.txt"); を使用 URLオブジェクトを使用していますが、常にnullを取得しました。私が読んだすべてのフォーラムは、このアクセス方法について語っています。.jar ファイルにアクセスして .txt ファイルを取得するにはどうすればよいですか? 皆さんありがとう!!

4

1 に答える 1

0

ZIP/JAR ファイルのコンテンツをプログラムで抽出します。jarFile が抽出される jar/zip ファイルであるとします。destDir は、抽出されるパスです。

java.util.jar.JarFile jar = new java.util.jar.JarFile(jarFile);
java.util.Enumeration enum = jar.entries();
while (enum.hasMoreElements()) 
{
    java.util.jar.JarEntry file = (java.util.jar.JarEntry) enum.nextElement();
    java.io.File f = new java.io.File(destDir + java.io.File.separator + file.getName());
    if (file.isDirectory())  // if its a directory, create it
    {
        f.mkdir();
        continue;
    }
    java.io.InputStream is = jar.getInputStream(file); // get the input stream
    java.io.FileOutputStream fos = new java.io.FileOutputStream(f);
    while (is.available() > 0)  // write contents of 'is' to 'fos'
    {  
       fos.write(is.read());
    }
    fos.close();
    is.close();
}

同じ質問がここにあります...

于 2012-04-23T10:19:51.033 に答える