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