- /**
- * 从网络Url中下载文件
- * @param urlStr
- * @param fileName
- * @param savePath
- * @throws IOException
- */
- public static void downLoadFromUrl(String urlStr,String fileName,String savePath) throws IOException{
- URL url = new URL(urlStr);
- HttpURLConnection conn = (HttpURLConnection)url.openConnection();
- //设置超时间为3秒
- conn.setConnectTimeout(3*1000);
- //防止屏蔽程序抓取而返回403错误
- conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
- //得到输入流
- 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);
- if(fos!=null){
- fos.close();
- }
- if(inputStream!=null){
- inputStream.close();
- }
- System.out.println("info:"+url+" download success");
- }
- /**
- * 从输入流中获取字节数组
- * @param inputStream
- * @return
- * @throws IOException
- */
- public 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();
- }
- public static void main(String[] args) {
- try{
- downLoadFromUrl("http://101.95.48.97:8005/res/upload/interface/apptutorials/manualstypeico/6f83ce8f-0da5-49b3-bac8-fd5fc67d2725.png",
- "123.jpg","d:/resource/images/diaodiao/country/");
- }catch (Exception e) {
- // TODO: handle exception
- }
- }
http请求下载文件(byte数组)
最新推荐文章于 2025-10-09 15:39:21 发布
本文介绍了一种通过Java从网络URL中下载文件的方法,并提供了一个具体的示例代码。该方法使用了HttpURLConnection进行网络请求,同时设置了合理的超时时间和请求头以避免被服务器拒绝。文章还展示了如何将获取到的数据流转换为字节数组并将其保存到本地。
6128

被折叠的 条评论
为什么被折叠?



