/**
* 解压缩zip文件
* @return
*/
public static List<File> upZip(File zipfile) {
List<File> zip_files = new ArrayList<File>();
if (zipfile.exists()) {
try {
ZipFile zipFile = new ZipFile(zipfile);
Enumeration<?> enu = zipFile.getEntries();
while (enu.hasMoreElements()) {
ZipEntry entry = (ZipEntry) enu.nextElement();
String filename = entry.getName();
InputStream is = zipFile.getInputStream(entry);
File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while((bytesRead=is.read(buffer,0,8192))!=-1){
fos.write(buffer, 0, bytesRead);
}
fos.close();
is.close();
zip_files.add(file);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("解压文件失败!");
}
}
return zip_files;
}
/**
* 将文件转换成bytes
* @param f
* @return
* @throws Exception
*/
public static byte[] getBytesFromFile(File f) throws Exception {
FileInputStream stream = new FileInputStream(f);
ByteArrayOutputStream out = new ByteArrayOutputStream(1000);
byte[] b = new byte[2048];
int n = 0;
while ((n = stream.read()) != -1) {
out.write(b, 0, n);
}
stream.close();
out.close();
return out.toByteArray();
}
/**
* 将字节数组写入文件
*
* @param bytes
* @return
*/
private File getFileFromByte(byte[] bytes, String fileName)
throws Exception {
InputStream is = new ByteArrayInputStream(bytes);
File file = new File(fileName);
FileOutputStream fos = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
fos.write(buffer, 0, bytesRead);
}
fos.close();
is.close();
return file;
}