《JAVA處理ZIP壓縮文件的操作》由會員分享,可在線閱讀,更多相關(guān)《JAVA處理ZIP壓縮文件的操作(2頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、文檔供參考,可復(fù)制、編制,期待您的好評與關(guān)注! JAVA處理ZIP壓縮文件的操作JAVA在處理壓縮文件時如果壓縮文件或者壓縮文件中的文件名為中文,會導(dǎo)致程序在處理時出錯或者解壓出來的文件為0KB,無法打開,需要做相應(yīng)的設(shè)置,具體的做法為修改JDK源碼,將需要引用到的相關(guān)文件作修改,然后再用到某個類的時候調(diào)用自己修改過的,而不使用JDK自帶的類,即可解決中文的問題public class ZipToFile static final int BUFFER = 2048;public void ReadZip(String zipfilepath, String unzippath) try Bu
2、fferedOutputStream bos = null; / 根據(jù)文件路徑創(chuàng)建輸入字節(jié)流 FileInputStream fis = new FileInputStream(zipfilepath); / 根據(jù)輸入字節(jié)流創(chuàng)建輸入字符流 BufferedInputStream bis = new BufferedInputStream(fis); / 根據(jù)字符流,創(chuàng)建ZIP文件輸入流 ZipInputStream zis = new ZipInputStream(bis); / zip文件條目,表示zip文件 ZipEntry entry; / 循環(huán)讀取文件條目,只要不為空,就進(jìn)行處理 wh
3、ile (entry = zis.getNextEntry() != null) int count; byte date = new byteBUFFER; / 如果條目是文件目錄,則繼續(xù)執(zhí)行 if (entry.isDirectory() continue; else int begin = zipfilepath.lastIndexOf() + 1; int end = zipfilepath.lastIndexOf(.) + 1; String zipRealName = zipfilepath.substring(begin, end); System.out.println(AAA
4、AAAAAAAAAAAAAAA+zipRealName); bos = new BufferedOutputStream(new FileOutputStream(this .getRealFileName(unzippath + + zipRealName, entry.getName(); while (count = zis.read(date) != -1) bos.write(date, 0, count); bos.flush(); bos.close(); zis.close(); catch (Exception e) e.printStackTrace(); private
5、File getRealFileName(String zippath, String absFileName) String dirs = absFileName.split(/, absFileName.length(); / 創(chuàng)建文件對象 File file = new File(zippath); if (dirs.length 1) for (int i = 0; i dirs.length - 1; i+) / 根據(jù)file抽象路徑和dir路徑字符串創(chuàng)建一個新的file對象,路徑為文件的上一個目錄 file = new File(file, dirsi); if (!file.exists() file.mkdirs(); file = new File(file, dirsdirs.length - 1); return file;2 / 2