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();
}
}
结语:
提供的是基础方法,用于参考,具体细节根据自己的业务处理并优化即可。
下一篇:
tcpdump命令以及简单使用
