0
我正在編寫一個應用程序,需要從其資源目錄複製一些靜態資產。目錄結構是這樣的;從Jar文件中的資源複製/提取目錄
java/
resources/
assets/
file1.txt
file2.txt
subdir/
file3.txt
我想將資產目錄(遞歸)複製到一個位置的文件系統上。如果我使用IOUtils.copy(InputStream in, OutputStream out)
,那麼我得到一個空指針異常。
InputStream in = getClass().getResourceAsStream("/assets");
OutputStream out = new FileOutputStream(new File("/path/to/write/to"));
IOUtils.copy(in, out);
Exception in thread "main" java.lang.NullPointerException
at java.io.FilterInputStream.read(FilterInputStream.java:133)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2146)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:2102)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:2123)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:2078)
但是,如果我改變輸入和輸出流,使他們有文件和目錄沒有,然後將其複製罰款。
有沒有辦法遞歸複製一個目錄是jar的一部分到文件系統?
你見過這個線程 http://stackoverflow.com/questions/1386809/copy-directory-from-a-jar-file – Reddymails
:然後複製它們在運行時是從該文件中讀取容易是的,謝謝,但我有點想避免將資產歸檔到他們自己的文件中。沒有這樣做,沒有辦法複製目錄recurisvely? – Kevin