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实现远程文件读取的知识点。 1. Socket 编程 在JAVA中,Socket...
### JAVA读取远程文件:缓冲多线程无阻塞实现 在互联网技术的快速发展中,高效、稳定地从远程服务器读取文件成为了一个常见的需求,尤其是在音频、视频流媒体服务中,用户对流畅度和响应速度有着极高的期待。本文将...
java 读取远程共享文件,一个操作简单的读取远程资源的控件。
主要实现的是登录服务器操作服务器的中的文件数据,支持读写的操作。主要使用的方法getProperties是设置配置的login(参数一是访问服务器的配置,参数二是设置读还是写)方法是读写连接服务器
JAVA读取远程网页文件并保存本地 从远程URL地址获取网页文件下载到本地 这个方法可以生成静态HTML文件使用!
标题 "Java读取远程主机文件" 涉及的核心知识点主要集中在Java远程操作技术,特别是使用SSH(Secure Shell)协议来实现对远程主机的文件访问。在这个场景中,开发人员可能需要从远程服务器上下载文件或者实时读取...
BufferedInputStream用于读取远程文件,而DataOutputStream用于将文件写入到本地。 4. 文件大小的确定 代码中使用了随机访问文件RandomAccessFile来确定已经下载的文件大小。 5. 文件的重命名 代码中使用了...
java 读取远程网站上的 数据,如 :图片,附件,视频等
总之,解决Java读取远程网页乱码问题的关键在于正确识别和使用网页的字符编码。通过设置请求头、使用特定的API或第三方库,以及处理响应头中的`Content-Type`信息,可以有效地避免乱码问题。同时,编写健壮的代码,...
综上所述,"java,jsp读取远程图片到本地服务器"涉及到的技术点包括Java和JSP的基础知识、HTTP通信、文件操作、HTML解析、在线编辑器集成以及性能优化等多个方面。理解并掌握这些知识点对于开发此类应用至关重要。
这个库包含了一系列的类和接口,如NtlmAuthenticator用于NT LAN Manager身份验证,SmbFile用于表示远程文件对象,SmbFileInputStream和SmbFileOutputStream则分别用于读写远程文件。 以下是一个简单的示例,展示...
在提供的文件内容中,涉及到的知识点主要集中在使用Java语言实现对远程文件的多线程、缓冲和无阻塞读取。首先,文件标题和描述明确指出是使用JAVA实现缓冲多线程无阻塞读取远程文件,这表明内容涉及Java I/O流、多...
在Java编程领域,远程文件操作是一项重要的功能,特别是在分布式系统和云计算环境中。"Java远程批量文件生成"这个项目就是利用Java的IO(输入/输出)功能来实现在远程服务器上创建多个文件的功能。下面我们将详细...
Java 利用 SMB 读取远程文件的方法 Java 语言可以通过 SMB(Server Message Block)协议来读取远程文件,SMB 是一个标准的网络协议,允许不同的操作系统之间进行文件共享和打印机共享。在 Java 中,我们可以使用 ...
在Java编程环境中,读取FTP(File Transfer Protocol)服务器上的文件是一项常见的任务,尤其是在Web服务器和...了解这些知识点后,你就能在Web服务器和Linux环境下实现与FTP服务器的交互,有效地管理和读取远程文件。
### 使用Java多线程实现无阻塞读取远程文件 #### 概述 在现代软件开发中,高效处理网络资源的读取变得尤为重要。对于Java开发者来说,利用多线程技术来实现远程文件的无阻塞读取可以显著提高应用程序的性能与响应...
在Java编程环境中,实现远程文件传输是一项常见的任务,特别是在分布式系统和网络应用中。这个小程序可能涉及到了几个关键的Java技术点,包括网络编程、I/O流处理以及可能的多线程技术。以下是对这些知识点的详细...
java读取文件大全 写入字节流 读取字节流 在实际运用中相当的广泛 大家共享下资料
在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,...通过这个类,你可以轻松地读取、写入和管理远程文件,进一步扩展你的应用程序的功能。但同时,也需要注意安全性,尤其是在处理敏感数据时。