java 中list集合导出txt并打包成zip
时间: 2024-03-19 12:45:42 浏览: 71
Java中可以使用ZipOutputStream类将多个txt文件打包成一个zip文件。以下是一个简单的示例代码,可以将List中的每个元素导出到单独的txt文件中,并将这些txt文件打包成一个zip文件:
```java
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ExportListToZip {
public static void main(String[] args) {
List<String> dataList = new ArrayList<>(); // 定义要导出的List集合
dataList.add("This is the first line.");
dataList.add("This is the second line.");
dataList.add("This is the third line.");
String zipFileName = "data.zip"; // 定义要导出的zip文件名
try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFileName))) {
for (int i = 0; i < dataList.size(); i++) {
String fileName = "file" + (i + 1) + ".txt"; // 定义要导出的文件名
String data = dataList.get(i); // 获取要导出的数据
BufferedWriter writer = new BufferedWriter(new FileWriter(fileName));
writer.write(data); // 写入文件内容
writer.close(); // 关闭文件流
FileInputStream fileIn = new FileInputStream(fileName);
ZipEntry zipEntry = new ZipEntry(fileName);
zipOut.putNextEntry(zipEntry); // 将文件添加到zip输出流中
byte[] bytes = new byte[1024];
int length;
while ((length = fileIn.read(bytes)) >= 0) {
zipOut.write(bytes, 0, length); // 将文件数据写入zip输出流中
}
fileIn.close(); // 关闭文件流
System.out.println("File " + fileName + " exported successfully!");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在上面的代码中,我们定义了一个List集合,并向其中添加了三个元素。然后定义了一个要导出的zip文件名。接着,使用ZipOutputStream类创建一个新的zip文件,并使用for循环遍历List中的每个元素,生成一个文件名和要导出的数据。然后使用BufferedWriter类和FileWriter类创建一个新的文件,并将数据写入文件中。接着,使用FileInputStream类将文件数据读取出来,并使用ZipEntry类将文件添加到zip输出流中。最后,关闭文件流并输出一条消息表示文件已成功导出到zip文件中。
阅读全文