2012-06-13 63 views
1

我想創建一個java控制檯應用程序,它將從URL下載文件。該文件在運行時創建,我不知道文件名。當我在瀏覽器中複製並粘貼URL時,彈出的保存文件出現以保存文件。現在我想要創建登錄到服務器的Java代碼(驗證用戶已完成),然後轉到該URL並下載該文件。java URL文件下載

+1

這是什麼問題? –

+1

你的問題是什麼? –

+0

對不起我的問題是如何實現這一點。我編寫如下代碼,當我運行它時,它會返回HTML代碼而不是實際的.xlsx文件。我需要更改代碼,以便在我的應用程序訪問URL時。我將生成並返回報告,我將該文件保存到本地計算機 – Mohamed

回答

0

從docs簡單exapmple,只是爲了把你的url登錄http://www.oracle.com/,並更改System.out.println(inputLine);寫入磁盤上的文件。

import java.net.*; 
import java.io.*; 

public class URLReader { 
    public static void main(String[] args) throws Exception { 

     URL oracle = new URL("http://www.oracle.com/"); 
     BufferedReader in = new BufferedReader(
     new InputStreamReader(oracle.openStream())); 

     String inputLine; 
     while ((inputLine = in.readLine()) != null) 
      System.out.println(inputLine); 
     in.close(); 
    } 
} 
+0

感謝Sergii,但這隻會返回該頁面的HTML代碼。 – Mohamed

+0

@Saned - 此代碼將向服務器請求*資源*,然後將下載服務器發送的字節流作爲響應。所以如果URL是用於HTML頁面的,你會得到HTML;如果URL指向Zip文件,您將獲得該Zip文件的字節。我不確定你還想要什麼? –

+0

我已經做了一些更新URL指向一個表單。我將代碼更改爲發佈到該表單。一旦帖子完成,應該生成一個文件。我想下載該文件。 – Mohamed

1

Sergii的回答是一個好的開始;但是,如果您要使用的網站需要更多簡單下載,請考慮使用Apache's HttpClient

它支持cookies,認證,URIs以及URL和文件上傳。