java - 如何使用 Java 从 Internet 下载文件

标签 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");

}

}

最佳答案

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

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

如果您希望将文件保存在下载目录中,请指定完整路径。例如

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

注意我是如何 escaped the backslashes 。另请注意,有 joining paths in Java 的方法。 。有一种方法可以获取 current working directory in Java .

关于java - 如何使用 Java 从 Internet 下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23248792/

相关文章:

c - 在 ISO C89 中的文件上写入字符串

c# - 如果网站使用 SSL,我该如何使用 Webclient.DownloadFile 或 DownloadString?

php - 如何使用php检索上传的文件

java - Java EE 到底是什么?

java - 在 linux 上与 DLP-IO20(使用 FTDI 芯片)通信

java - 无参数构造函数与带参数的构造函数

java - 参数 2 未注册为输出参数

java - 无法打开 .txt 文件以读取整数

linux - mmap 和 O_DIRECT 可以一起使用吗?

C# WebClient 使用异步并返回数据