如何使用Java从Internet下载文件

时间:2014-04-23 15:25:00

标签: java file download

您好我正在尝试在我的程序中编写一些代码,以便我可以从互联网上获取文件,但似乎无法正常工作。有人可以给我一些建议吗?这是我的代码。在这种情况下,我尝试从last.fm网站下载一个mp3文件,我的代码运行完全正常,但当我打开我的下载目录时,文件不存在。有什么想法吗?

  public class download {

  public static void main(String[] args) throws IOException {

     String fileName = "Death Grips - Get Got.mp3"; 
     URL link = new URL("http://www.last.fm/music/+free-music-downloads"); 

     InputStream in = new BufferedInputStream(link.openStream());
     ByteArrayOutputStream out = new ByteArrayOutputStream();
     byte[] buf = new byte[1024];
     int n = 0;
     while (-1!=(n=in.read(buf)))
     {
        out.write(buf, 0, n);
     }
     out.close();
     in.close();
     byte[] response = out.toByteArray();

     FileOutputStream fos = new FileOutputStream(fileName);
     fos.write(response);
     fos.close();


     System.out.println("Finished");

}

}

1 个答案:

答案 0 :(得分:2)

每个正在执行的程序都有当前工作目录。通常,它是可执行文件所在的目录(如果它以“正常”方式启动)。

由于您未指定路径(在fileName中),因此该文件将在当前工作目录中以该名称保存。

如果要将文件保存在下载目录中,请指定完整路径。 E.g。

String fileName = "C:\\Users\\YOUR_USERNAME\\Downloads\\Death Grips - Get Got.mp3"; 

请注意我escaped the backslashes的方式。另请注意,joining paths in Java有方法。有一种方法可以获得current working directory in Java