Java后台从第三方接口读取文件流存为本地文件

Java后台从第三方接口读取文件流存为本地文件

简述:

业务需求,从第三方提供的接口获取文件流,保存为本地文件。

第三方接口部分代码如下:

response.reset();
      response.setContentType("application/octet-stream;charset=UTF-8");
      outputStream = new BufferedOutputStream(response.getOutputStream());
      outputStream.write(buffer);
      outputStream.flush();

处理方法:

HttpURLConnection urlConnection = null;
        FileOutputStream fileOutputStream = null;
        InputStream inputStream = null;
        try{
          
   
            URL url = new URL(requestUrl);

            urlConnection = (HttpURLConnection)url.openConnection();
            urlConnection.setRequestMethod("POST");
            urlConnection.setConnectTimeout(TIMEOUT);
            urlConnection.setDoOutput(true);
            urlConnection.setDoInput(true);
            urlConnection.setUseCaches(false);
            urlConnection.setRequestProperty("Content-Type", "application/json; charset="+CHARSET);
            urlConnection.connect();

            File file = new File(filePath);
            if(!file.getParentFile().exists()){
          
   
                file.getParentFile().mkdirs();
            }
            if(!file.exists()){
          
   
                file.createNewFile();
            }

            inputStream = urlConnection.getInputStream();

            BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
            fileOutputStream = new FileOutputStream(filePath);
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);

            byte[] buf = new byte[4096];
            int length = bufferedInputStream.read(buf);
            while (-1 != length){
          
   
                bufferedOutputStream.write(buf,0,length);
                length = bufferedInputStream.read(buf);
            }

            bufferedInputStream.close();
            bufferedOutputStream.close();
        }catch (Exception e){
          
   
            System.out.println("getFile error: " + e);
        }finally {
          
   
            if(null != urlConnection){
          
   
                urlConnection.disconnect();
            }
        }

结语:

提供的是基础方法,用于参考,具体细节根据自己的业务处理并优化即可。

经验分享 程序员 微信小程序 职场和发展