0

我一直在尝试多种从 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 回答 2

1

Java 中有多种方法可以从 Internet 下载文件。最简单的一种是使用缓冲区和流:

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);
        }

只是基本概念。不要忘记关闭流;)

于 2013-02-04T14:02:20.833 回答
0

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

于 2013-02-04T14:01:25.733 回答