21xrx.com
2024-12-23 05:13:50 Monday
登录
文章检索 我的文章 写文章
Java实现文件下载只能打开?
2023-06-11 10:54:18 深夜i     --     --

在使用Java实现文件下载的时候,很多人可能会遇到这样一个问题:下载文件后只能打开,而不能保存。这可能让我们感到十分困惑。那么,到底是为什么呢?

其实,这个问题的原因在于Java代码中没有指定文件下载的保存路径。当我们点击下载链接时,Java程序只是将文件以流的形式读取到了内存中,但并没有将其写入到磁盘上的文件中。因此,我们在找到下载的文件后只能打开,而不能进行保存操作。

那么,该怎么办呢?我们需要在Java代码中加入文件保存路径的设置。下面是一个简单的Java下载代码示例:


public static void downloadFile(String urlStr, String fileName, String savePath) throws IOException {

  URL url = new URL(urlStr);

  HttpURLConnection conn = (HttpURLConnection) url.openConnection();

  conn.setConnectTimeout(3000);

  conn.setRequestMethod("GET");

  InputStream inputStream = conn.getInputStream();

  byte[] getData = readInputStream(inputStream);

  File saveDir = new File(savePath);

  if (!saveDir.exists()) {

    saveDir.mkdir();

  }

  File file = new File(saveDir + File.separator + fileName);

  FileOutputStream fos = new FileOutputStream(file);

  fos.write(getData);

  fos.close();

  inputStream.close();

}

private static byte[] readInputStream(InputStream inputStream) throws IOException {

  byte[] buffer = new byte[1024];

  int len = 0;

  ByteArrayOutputStream bos = new ByteArrayOutputStream();

  while ((len = inputStream.read(buffer)) != -1) {

    bos.write(buffer, 0, len);

  }

  bos.close();

  return bos.toByteArray();

}

在这个代码示例中,我们使用了Java的URL和HttpURLConnection类,通过向服务器发送GET请求来获取文件流。接着,我们通过byte数组将流读取到内存中,并将其保存到指定的路径下的文件中。

通过对上述代码进行适当的修改,我们可以实现Java文件下载时能够进行保存操作,而不仅仅只能打开文件的功能。下面是三个关键词,供大家参考:

1. Java文件下载

2. 文件保存路径设置

3. URL和HttpURLConnection类

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复