[英]Trying to save a String representation of zip file contents as a file in Java
我有一個zip文件的內容,該文件是從客戶端多部分表單數據api接收的,存儲為字符串。
我現在只想將這些數據另存為zip文件; 但是,當我嘗試按以下方式保存到文件時,然后當我嘗試打開文件時,收到一條消息,指出
“ Windows無法打開該文件夾。壓縮(壓縮)的文件夾'C:\\ payload.zip'無效。”
public void createFile(String data) {
try {
BufferedWriter out = new BufferedWriter(new FileWriter("c:\\payload.zip"));
out.write(data);
out.close();
}
catch (IOException e)
{
System.out.println("Exception ");
}
}
我只是將接收到的String傳遞給上面顯示的小測試createFile方法。
我以為我會在下面粘貼實際的String內容,但是當我嘗試這樣做時,它會將其轉換為此(不帶雙引號):“ PK”
我做錯了什么嗎?
您可以使用BufferedWriter創建擴展名為.zip的文件,但是不要期望該文件是壓縮文件(二進制)
您可以使用以下內容
看這個例子:
StringBuilder sb = new StringBuilder();
sb.append("your string data");
File f = new File("c:\\payload.zip");
ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f));
ZipEntry e = new ZipEntry("myFile.txt");
out.putNextEntry(e);
byte[] data = sb.toString().getBytes();
out.write(data, 0, data.length);
out.closeEntry();
out.close();
要將郵政編碼的文本表示再次另存為zip文件,請執行以下操作:
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("c:\\dest.zip"),
"Cp1252"));
writer.write(data);
writer.close();
或者您可以嘗試:
FileOutputStream fos = new FileOutputStream("C:\\dest.zip");
fos.write(data.getBytes());
fos.close();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.