mszhe的技术分享 人心惟危,道心惟微。惟精惟一,允执厥中。

FileChannel处理下载文件

2019-04-11
mszhe

阅读:


  • 示例
    public static void main(String[] args) {
          String originFileUrl = "";
          String savePath = "";
          String fileName = "";
          InputStream is = null;
          FileOutputStream fos = null;
          try {
              URL url = new URL(originFileUrl);
              HttpURLConnection conn = (HttpURLConnection) url.openConnection();
              conn.setRequestProperty(USER_AGENT, USER_AGENT_VALUE);
              is = conn.getInputStream();
    
              //文件保存位置
              File saveDir = new File(savePath);
              if (!saveDir.exists()) {
                  boolean mkdir = saveDir.mkdir();
                  logger.info("mkdir : {}, result: {}", savePath, mkdir);
              }
              File file = new File(saveDir + File.separator + fileName);
              fos = new FileOutputStream(file);
    
              fos.getChannel().transferFrom(Channels.newChannel(is), 0, Integer.MAX_VALUE);
                
              fos.flush();
          } catch (Exception e) {
              e.printStackTrace();
          } finally {
              IOUtils.closeQuietly(fos);
              IOUtils.closeQuietly(is);
          }
      }