Re: [蟲?] ClassLoader 和 讀取 jar 中的檔案的問題
※ 引述《slalala (ptt不是丁丁知識+)》之銘言:
: ※ 引述《Nt1 (用功點吧!)》之銘言:
: : 好吧…我剛剛在 javaworld 找到解決方法了,就…自問自答一下吧@@"
: : 因為在 jar 中的檔案,(如txt),並沒有辦法建構出一個 File 物件來操作,
: : 也就是說,不管用什麼方式,只要這個 txt file 在 jar 中,就沒有辨法用
: : File = new File(xxxxx); 的方式來產生,這時候…可以用 ClassLoader 中的
: : getResourceAsStream("filename") 來把這個txt file當成一個 stream 來處理,而不是
: : File物件,再用 InputStreamReader 來接這個 stream 就可以了^^
: : 如:
: : ClassLoader cl = this.getClass().getClassLoader();
: : InputStreamReader inr = new InputStreamReader
: : (cl.getResourceAsStream("images/01.txt"));
: : BufferedReader br = new BufferedReader(inr);
: 我也在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();
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 76.111.69.123
※ 編輯: willieliao 來自: 76.111.69.123 (10/06 09:31)
推
10/06 14:39, , 1F
10/06 14:39, 1F
→
10/06 14:39, , 2F
10/06 14:39, 2F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章