0
我试图从字节数组中创建“.zip”文件,但每次尝试打开它时都会出现错误。这里是代码:FileOutputStream压缩文件打开错误:“文件无法打开为压缩文件”
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
public class ReadTxtFile {
public static void BinFileContToBinArr(String path) throws Throwable{
BufferedReader inputStream = null;
PrintWriter outputStream = null;
try{
String el = null;
ByteArrayOutputStream baos = new ByteArrayOutputStream();
inputStream = new BufferedReader(new FileReader(path));
FileOutputStream fos = new FileOutputStream("D:/texttNE22W.zip");
while((el=inputStream.readLine()) != null){
baos.write(el.getBytes());
}
byte[] b = baos.toByteArray();
for(int i = 0; i<b.length; i++){
System.out.print((char)b[i] + " ");
}
fos.write(b);
}
finally{
if (inputStream!=null){
inputStream.close();
}
if(outputStream!=null){
outputStream.close();
}
}
}
public static void main(String[] args) throws Throwable {
String path = "D:/text.txt";
BinFileContToBinArr(path);
}
}
我做了一个研究,但没有找到解决方案。此外,我试图创建一个“.txt”文件,它的工作原理。唯一的问题是创建一个“.zip”。
事先谢谢!顺便说一句,如果以前有人遇到过这个问题,可以随意投票或者如果你愿意的话给我留言,因为如果这是一个常见的错误,我很感兴趣。
谢谢!然而,在我正在学习的书中,它说要使用FileOutputStream,并且我对该解决方案感兴趣。 – Kirev
因此,本书要求您手动执行压缩?您需要复制ZipOutputStream的功能而不使用它?你需要编写一个Zip算法的实现?这不是很微不足道,你可能想在这里开始你的研究:http://en.wikipedia.org/wiki/Zip_%28file_format%29 – yotsov
好吧,是的。谢谢,我肯定会从这里开始...... :) – Kirev