要在Java中实现解压缩文件和文件夹,可以使用Java的内置库java.util.zip。下面是详细的攻略:
1. 导入Java库
首先需要导入Java库,使得程序中可以使用Java内置的解压缩函数。具体语句如下:
import java.io.*;
import java.util.zip.*;
2. 解压缩单个文件
要解压缩单个文件,需要使用ZipInputStream类和FileOutputStream类。ZipInputStream类用于读取ZIP归档文件中的数据,而FileOutputStream类用于将这些数据写入磁盘中的文件。具体步骤如下:
try {
// 读取ZIP归档文件
ZipInputStream zis = new ZipInputStream(new FileInputStream("archive.zip"));
// 读取ZIP归档中的文件
ZipEntry entry = zis.getNextEntry();
// 获取文件名
String fileName = entry.getName();
// 创建输出文件
FileOutputStream fos = new FileOutputStream(fileName);
//将文件写入磁盘
byte[] buffer = new byte[1024];
int len;
while((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
// 关闭输入流和输出流
fos.close();
zis.closeEntry();
zis.close();
} catch(IOException e) {
e.printStackTrace();
}
以上代码会将ZIP归档文件中的第一个文件解压缩并写入磁盘中。
3. 解压缩整个ZIP归档
如果要解压缩整个ZIP归档文件,可以使用ZipInputStream类和ZipEntry类,具体步骤如下:
try {
// 创建输入流
FileInputStream fileInputStream = new FileInputStream("archive.zip");
ZipInputStream zipInputStream = new ZipInputStream(fileInputStream);
// 读取ZIP归档中的文件
ZipEntry entry;
while ((entry = zipInputStream.getNextEntry()) != null) {
String fileName = entry.getName();
// 创建输出文件
FileOutputStream fos = new FileOutputStream(fileName);
// 将文件写入磁盘
int len;
byte[] buffer = new byte[1024];
while ((len = zipInputStream.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
// 关闭输出流
fos.close();
}
// 关闭输入流
zipInputStream.closeEntry();
zipInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
以上代码会将ZIP归档文件中所有文件解压缩并写入磁盘中。
4. 示例
下面是一个完整的示例程序,它会将当前路径下的archive.zip文件解压缩到当前路径下,并打印出解压缩的文件名:
import java.io.*;
import java.util.zip.*;
public class DecompressZip {
public static void main(String[] args) {
try {
// 读取ZIP归档文件
ZipInputStream zis = new ZipInputStream(new FileInputStream("archive.zip"));
// 读取ZIP归档中的文件
ZipEntry entry = zis.getNextEntry();
// 获取文件名
String fileName = entry.getName();
// 创建输出文件
FileOutputStream fos = new FileOutputStream(fileName);
// 将文件写入磁盘
byte[] buffer = new byte[1024];
int len;
while((len = zis.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
// 关闭输入流和输出流
fos.close();
zis.closeEntry();
zis.close();
System.out.println("Decompressed " + fileName);
} catch(IOException e) {
e.printStackTrace();
}
}
}
另外一个示例程序,它会将当前路径下的archive.zip文件解压缩到当前路径下,并打印出解压缩的文件名:
import java.io.*;
import java.util.zip.*;
public class DecompressZip {
public static void main(String[] args) {
try {
// 创建输入流
FileInputStream fileInputStream = new FileInputStream("archive.zip");
ZipInputStream zipInputStream = new ZipInputStream(fileInputStream);
// 读取ZIP归档中的文件
ZipEntry entry;
while ((entry = zipInputStream.getNextEntry()) != null) {
String fileName = entry.getName();
// 创建输出文件
FileOutputStream fos = new FileOutputStream(fileName);
// 将文件写入磁盘
int len;
byte[] buffer = new byte[1024];
while ((len = zipInputStream.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
// 关闭输出流
fos.close();
System.out.println("Decompressed " + fileName);
}
// 关闭输入流
zipInputStream.closeEntry();
zipInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
以上就是“Java 如何实现解压缩文件和文件夹”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 如何实现解压缩文件和文件夹 - Python技术站