作者psalter (Regular Expression)
看板java
标题Re: [虫?] ClassLoader 和 读取 jar 中的档案的问题
时间Sat Oct 6 13:07:02 2007
※ 引述《willieliao (Willie Liao)》之铭言:
: ※ 引述《slalala (ptt不是丁丁知识+)》之铭言:
: : 我也在Javaworld也看到这个问题。
: : 只是这个方式用BufferedReader只能读取文字档案吧??
: : 如果我需要写入一个特殊格式的档案,例如*.mp3 *.wav或者*.mdb *.pdf
: : 请问我该怎麽实作呢?
: : 因为不管怎样,包装成JAR之後,读取file的方式一定会失败。
: : 所以应该读取成串流的方式...
: //从JAR中读取任何档案
: InputStream is = getClass().getResourceAsStream("..");
: byte[] b = new byte[is.available()];
: is.read(b);
: is.close();
: //写出去
: FileoutputStream fos = new FileoutputStream(new File("..."));
: fos.write(b);
: fos.close();
补充一下
getClass().getResourceAsStream("config.properties");
是从目前class所在的目录下读取档案,也就是档案要跟class放在一起
如果用 getClass().getResourceAsStream("/config.properties");
会从class所属的package最上层目录去找档案,例如 package为:
my.fun.ap 则会找 my/config.properties
至於要不要让档案跟class放在一起,那就需要评估看看了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 122.99.15.253