ZipOutputStream 转 FileInputStream
时间: 2023-10-22 14:06:52 浏览: 85
要将 `ZipOutputStream` 转换成 `FileInputStream`,需要先将 `ZipOutputStream` 写入到一个文件中,然后再使用 `FileInputStream` 读取该文件。下面是一个示例代码:
```java
import java.io.*;
import java.util.zip.*;
public class ZipOutputStreamToFileInputStreamExample {
public static void main(String[] args) throws IOException {
byte[] data = "Hello, world!".getBytes();
// 创建 ZipOutputStream 并写入数据
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream(baos);
zos.putNextEntry(new ZipEntry("test.txt"));
zos.write(data);
zos.closeEntry();
zos.close();
// 将 ZipOutputStream 转换为 ByteArrayInputStream
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
// 将 ByteArrayInputStream 转换为 FileInputStream
File outputFile = new File("output.zip");
FileOutputStream fos = new FileOutputStream(outputFile);
byte[] buffer = new byte[1024];
int len;
while ((len = bais.read(buffer)) > 0) {
fos.write(buffer, 0, len);
}
fos.close();
bais.close();
FileInputStream fis = new FileInputStream(outputFile);
// 使用 FileInputStream 处理数据
// ...
fis.close();
}
}
```
在上面的示例中,我们首先创建了一个 `ZipOutputStream` 并向其中写入了一些数据。然后,我们将 `ZipOutputStream` 转换为 `ByteArrayInputStream`,再将它转换为 `FileInputStream`,最后再使用 `FileInputStream` 处理数据。
阅读全文