簡體   English   中英

Java從網頁下載Zip

[英]Java Download Zip from Webpage

我正在嘗試從URL下載一個zip文件,而我已經完成了。 問題在於它會繼續下載網頁本身,因此我最終得到了一些漂亮的HTML,CSS,JS和PHP。 距離zip文件不遠。

如果我的代碼有問題,請更正我:

private static String URL = "webpage/myzip.zip";
private static String OUTPUT_PATH = "path/to/extract/to";
private static File OUTPUT_DIRECTORY = new File(OUTPUT_PATH);

public static void create() throws Exception {
    if (!OUTPUT_DIRECTORY.exists()) OUTPUT_DIRECTORY.mkdirs();
    else return;

    System.out.println("Natives not found. Downloading.");

    BufferedInputStream in = null;
    FileOutputStream fout = null;

    try {
        in = new BufferedInputStream(new URL(URL).openStream());
        fout = new FileOutputStream(OUTPUT_PATH + File.separator + "myzip.zip");

        final byte[] data = new byte[4096];
        int count;

        while ((count = in.read(data, 0, 1024)) != -1) {
            fout.write(data, 0, count);
        }
    } finally {
        if (in != null) in.close();
        if (fout != null) fout.close();
    }

    OUTPUT_DIRECTORY = new File(OUTPUT_PATH);
    File zip = OUTPUT_DIRECTORY.listFiles()[0];

    ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zip));
    ZipEntry ze = zipIn.getNextEntry();

    byte[] buffer = new byte[4096];

    while (ze != null) {
        String fName = ze.getName();
        File newFile = new File(OUTPUT_DIRECTORY + File.separator + fName);

        new File(newFile.getParent()).mkdirs();

        FileOutputStream fos = new FileOutputStream(newFile);

        int len;
        while ((len = zipIn.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
        }

        fos.close();
        ze = zipIn.getNextEntry();
    }

    zipIn.closeEntry();
    zipIn.close();

//      zip.delete();

    System.out.println("Natives Downloaded.");
}

提供的答案:可怕的袋熊

我沒有正確復制鏈接。 我使用的是下拉框鏈接,但忘記了當您點擊下載按鈕時,我需要復制下載鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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