嗨,我正在尝试在程序中编写一些代码,以便我可以从互联网上获取文件,但似乎不起作用。有人可以给我一些建议吗?这是我的代码。在本例中,我尝试从 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/