簡體   English   中英

嘗試將zip文件內容的String表示形式另存為Java中的文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM