java读取本地文件大家都不陌生,而且实现也相对轻松。java读取远程文件怎么实现呢?
使用到的Java的核心类:java.net.URL,java.net.URLConnection,java.net.HttpURLConnection
原理:
(1)使用文件地址创建URL,如
URLurl = new URL(url)
(2)创建url连接,如:URLConnection urlconn=url.openConnection()
(3)转化url连接为httpUrl连接,如:HttpURLConnection httpconn = (HttpURLConnection) urlconn;
(4)读取httpconn的流,如httpconn.getInputStream()或
缓存读取流:BufferedInputStream bis=new BufferedInputStream(httpconn.getInputStream());
(5).读到byte数组,如:while((r=bis.read(b))>0);
总结:最大的感受就是网络读取文件和本地读取的区别。本地文件就是file,而网络上文件是一个URL。这是我自己的理解,可能有点误解吧。
ps一下代码:
import java.io.BufferedInputStream; import java.io.File; import java.io.IOException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; public class FileDownload { public static void main(String[] args) throws IOException { //String remote_img_url="http://zhbccrm.xicp.net:8008/v1/tfs/T1WaJTByxT1R4cSCrK.png"; String remote_img_url="http://img.baidu.com/img/iknow/sula201506/baiduzhidaowenkugaokao.png?t=1433819530"; URL url=null; URLConnection urlconn=null; HttpURLConnection httpconn=null; BufferedInputStream bis=null; try { url = new URL(remote_img_url); urlconn = url.openConnection(); //1.5以后URLConnection设置连接超时,从主机读取数据超时 单位:毫秒 /*urlconn.setConnectTimeout(10000); urlconn.setReadTimeout(20000);*/ httpconn = (HttpURLConnection) urlconn; int httpResult = httpconn.getResponseCode(); System.out.println("httpResult::"+httpResult); if(httpResult==HttpURLConnection.HTTP_OK){ int filesize = urlconn.getContentLength(); // 取数据长度 byte[] b=new byte[filesize]; bis=new BufferedInputStream(httpconn.getInputStream()); int r=0; while((r=bis.read(b))>0); System.out.println("length::"+filesize); //System.out.println("string:"+new String(b,"UTF-8")); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ if(httpconn!=null) httpconn.disconnect(); if(bis!=null){ bis.close(); } } } }
总结:使用httpClient实现远程访问服务,怎么判断
相关推荐
本文件是将 Java 中 通过远程url访问 转换成 HTML 文件 ,通过 dom4j转换成Java对象元素
用JAVA实现缓冲多线程无阻塞读取远程文件
JAVA实现远程文件读取
java 读取远程共享文件,一个操作简单的读取远程资源的控件。
JAVA读取远程网页文件并保存本地 从远程URL地址获取网页文件下载到本地 这个方法可以生成静态HTML文件使用!
主要实现的是登录服务器操作服务器的中的文件数据,支持读写的操作。主要使用的方法getProperties是设置配置的login(参数一是访问服务器的配置,参数二是设置读还是写)方法是读写连接服务器
java读取远程网页乱码解决方案 java读取远程网页乱码解决方案
java 读取远程网站上的 数据,如 :图片,附件,视频等
NULL 博文链接:https://listen-raining.iteye.com/blog/1944136
用JAVA实现缓冲多线程无阻塞读取远程文件.pdf
java读取文件大全 写入字节流 读取字节流 在实际运用中相当的广泛 大家共享下资料
用Java多线程实现无阻塞读取远程文件!
本程序可用于在线编辑器提交内容时自动从网页中获得src图片地址,然后把远程图片下载到本地服务器,并把原网页中的地址替换成本地的地址。直接放在根目录上运行就行了。
file io的简单实例
Java读取远程网络上的文件,可以得到文件,实例化地址输入框和按钮,实例化一个面板,用于容纳地址输入框和取文件按钮,增加组件到容器上,打开和创建文件输入流并关闭输入流,设置窗口尺寸和可视化,关闭窗口时退出...
这是一个详细介绍Java怎么样写XML文件和远程读取XML文件的文档,里面有详细的例子。
主要为大家详细介绍了java利用SMB读取远程文件的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java 读取FTP服务器文件使用于web服务器和liunx系统环境下。
用JAVA实现缓冲多线程无阻塞读取远程文件.doc
对FTP服务器文件的基本操做:上传下载递归目录遍历等。