在java中创建Zip文件而不使用字节[]

在java中创建Zip文件而不使用字节[],java,zip,Java,Zip,在我的程序中,我生成了多个CSV文件,我想将它们作为一个.zip文件发布在网页上。为此,我想在服务器上使用Java1.6 目前,我可以毫无问题地创建.csv文件。现在我想写BufferedWriter的内容,我用来创建csv文件,直接写入Zip文件(不存储csv文件) 我发现了一些像和这样的教程,我想在我的应用程序中或多或少地做相同的事情,但我不喜欢字节数组 我可以避免这个字节数组吗?这是不可能的,因为您正在使用扩展流。因为扩展流处理的是要写入的字节 通常有两种I/O方式。一个是基于流(字节),

在我的程序中,我生成了多个CSV文件,我想将它们作为一个.zip文件发布在网页上。为此,我想在服务器上使用Java1.6

目前,我可以毫无问题地创建.csv文件。现在我想写BufferedWriter的内容,我用来创建csv文件,直接写入Zip文件(不存储csv文件)

我发现了一些像和这样的教程,我想在我的应用程序中或多或少地做相同的事情,但我不喜欢字节数组


我可以避免这个字节数组吗?

这是不可能的,因为您正在使用扩展流。因为扩展流处理的是要写入的字节


通常有两种I/O方式。一个是基于流(字节),另一个是基于读卡器(字符)。Zip只包含基于流的实现

您可以使用Java中的新IO包来处理Zip文件

从Java7开始提供

Map<String, String> env = new HashMap<>(); 
env.put("create", "true");
// locate file system by using the syntax 
// defined in java.net.JarURLConnection
URI uri = URI.create("jar:file:/codeSamples/zipfs/zipfstest.zip");
try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
    Path externalTxtFile = Paths.get("/codeSamples/zipfs/SomeTextFile.txt");
    Path pathInZipfile = zipfs.getPath("/SomeTextFile.txt");          
    // copy a file into the zip file
    Files.copy( externalTxtFile,pathInZipfile, 
                StandardCopyOption.REPLACE_EXISTING ); 
}
Map env=new HashMap();
环境出售(“创建”、“真实”);
//使用语法定位文件系统
//在java.net.JarURLConnection中定义
URI=URI.create(“jar:file:/codeSamples/zipfs/zipfstest.zip”);
try(FileSystem-zipfs=FileSystems.newFileSystem(uri,env)){
Path externalTxtFile=Path.get(“/codeSamples/zipfs/SomeTextFile.txt”);
Path pathInZipfile=zipfs.getPath(“/SomeTextFile.txt”);
//将文件复制到zip文件中
复制(externalTxtFile、pathInZipfile、,
StandardCopyOption.REPLACE_现有);
}

字节数组有什么问题?你的问题是什么?如果我理解你的问题,你想创建一个没有文件系统上现有文件的zip。演示如何通过直接将内存中的字符串写入zip条目来创建zip文件(这样您就不必压缩存储在文件系统中的文件)。不,你不能跳过字节数组。这不是我想听到的答案。。。好的,我必须处理字节。