我有两个路径不同,但是同名同类型的文件,想放到压缩包中,怎么判断这个名称的文件已经通过putNextEntry放到压缩包中了
时间: 2024-03-21 10:37:59 浏览: 23
如果您想要判断两个路径不同,但是同名同类型的文件是否已经通过ZipOutputStream.putNextEntry()方法放到压缩包中了,您可以使用一个Map来记录每个文件的信息。在向压缩包中添加文件时,您可以检查该Map中是否已经存在该文件,并根据需要执行相应的操作。
以下是一个示例代码片段,演示如何使用Map来跟踪已经添加到压缩包中的文件:
```java
Map<String, Boolean> fileMap = new HashMap<>();
File file1 = new File("path/to/file1.txt");
File file2 = new File("path/to/file2.txt");
// 添加 file1.txt 到压缩包
if (!fileMap.containsKey(file1.getName())) {
fileMap.put(file1.getName(), true);
ZipEntry zipEntry = new ZipEntry(file1.getName());
zipOutputStream.putNextEntry(zipEntry);
FileInputStream fileInputStream = new FileInputStream(file1);
byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
zipOutputStream.write(buffer, 0, length);
}
fileInputStream.close();
zipOutputStream.closeEntry();
}
// 添加 file2.txt 到压缩包
if (!fileMap.containsKey(file2.getName())) {
fileMap.put(file2.getName(), true);
ZipEntry zipEntry = new ZipEntry(file2.getName());
zipOutputStream.putNextEntry(zipEntry);
FileInputStream fileInputStream = new FileInputStream(file2);
byte[] buffer = new byte[1024];
int length;
while ((length = fileInputStream.read(buffer)) > 0) {
zipOutputStream.write(buffer, 0, length);
}
fileInputStream.close();
zipOutputStream.closeEntry();
}
```
在上面的示例中,我们首先创建一个Map对象来跟踪已经添加到压缩包中的文件。然后,我们分别将file1.txt和file2.txt添加到压缩包中。在每个文件添加之前,我们都检查Map中是否已经存在该文件。如果文件不存在,则将其添加到Map中,并执行相应的操作。否则,我们将跳过该文件并继续处理下一个文件。这样,您就可以确保每个文件只添加一次到压缩包中。
相关推荐
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)