将文件(.zip,.jar,...)下载到文件夹

时间:2013-02-04 13:57:28

标签: java file url file-io download

我一直在尝试多种方法从URL下载文件并将其放在文件夹中。

public static void saveFile(String fileName,String fileUrl) throws MalformedURLException, IOException {
FileUtils.copyURLToFile(new URL(fileUrl), new File(fileName));
}

boolean success = (new File("File")).mkdirs();
if (!success) {
Status.setText("Failed");
}
    try {
        saveFile("DownloadedFileName", "ADirectDownloadLinkForAFile");
    } catch (MalformedURLException ex) {
        Status.setText("MalformedURLException");
        Logger.getLogger(DownloadFile.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException ex) {
        Status.setText("IOException Error");
        Logger.getLogger(DownloadFile.class.getName()).log(Level.SEVERE, null, ex);
    }

我在网上发现了这个代码,我正确使用它吗?

如果我这样做:     saveFile(“FolderName”,“ADirectDownloadLinkForAFile”)

我会得到IOException错误

我希望我的代码能做的是:

  1. 创建文件夹
  2. 下载文件
  3. 下载文件以转到刚刚创建的文件夹
  4. 我是新手,抱歉。请帮忙

2 个答案:

答案 0 :(得分:1)

java有多种方法可以从互联网上下载文件。 最简单的方法是使用缓冲区和流:

File theDir = new File("new folder");

  // if the directory does not exist, create it
  if (!theDir.exists())
  {
    System.out.println("creating directory: " + directoryName);
    boolean result = theDir.mkdir();  
    if(result){    
       System.out.println("DIR created");  
     }

  }
FileOutputStream out = new FileOutputStream(new File(theDir.getAbsolutePath() +"filename"));
BufferedInputStream in = new BufferedInputStream(new URL("URLtoYourFIle").openStream());
byte data[] = new byte[1024];
int count;
        while((count = in.read(data,0,1024)) != -1)
        {
            out.write(data, 0, count);
        }

只是基本概念。别忘了关闭溪流;)

答案 1 :(得分:0)

File.mkdirs()语句似乎正在创建名为Files的文件夹,但saveFile()方法似乎没有使用此方法,只是将文件保存在当前目录中。