`

java下载远程服务器端数据文件

阅读更多

在java中实现下载远程服务器中的数据文件
/**
	 * 下载服务器端清单文件
	 * 
	 * 
	 */
	public void dowloadFile() {
		HttpServletResponse response = ServletActionContext.getResponse();
		HttpServletRequest request = ServletActionContext.getRequest();
		try {
			String downPath = PropertyUtil.getProperty("xjgz.task.inf.downPath",
					"attribute.properties");
			//String ftpUrl = PropertyUtil.getProperty("xjgz.task.inf.ftpUrl",
			//"attribute.properties");
			HttpURLConnection httpUrl = null;
	        URL url = null;
	        String urlStr = "http://135.224.78.18:8888";//服务器地址
	        if(fileName.indexOf("/") != -1){
	        	fileName = fileName.replaceAll("/", "-");
	        }
	        String str = encode(urlStr + downPath + "/" + fileName, "utf-8");//需要对数据文件的全链接中的中文字符进行加密
	        url = new URL(str);
	      
			BufferedOutputStream out = null;
			BufferedInputStream in = null;
			try {
				in = new BufferedInputStream(url.openStream());
				response.reset();
	            response.setContentType("application/octet-stream"); 
	            response.setHeader("Content-Disposition",
						"attachment;filename=\"" + URLEncoder.encode(fileName,"UTF-8") + "\"");
	            int i;
	            while((i=in.read())!=-1){
	                response.getOutputStream().write(i);
	            }
	            in.close();
	            response.getOutputStream().close();
			}catch(Exception e){
				e.printStackTrace();
			}
			finally {
				if (in != null) {
					in.close();
					in = null;
				}
				if (out != null) {
					out.close();
					out = null;
				}
			}
			response.flushBuffer();
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		} catch (FileNotFoundException e1) {
			e1.printStackTrace();
		} catch (IOException e2) {
			e2.printStackTrace();
		}

	}
	
	
	/**
	 * * 替换字符串卷 * *
	 * 
	 * @param str
	 *            被替换的字符串 *
	 * @param charset
	 *            字符集 *
	 * @return 替换好的 *
	 * @throws UnsupportedEncodingException
	 *             不支持的字符集
	 */
	public static String encode(String str, String charset)
			throws UnsupportedEncodingException {
		String zhPattern = "[\u4e00-\u9fa5]+";
		Pattern p = Pattern.compile(zhPattern);
		Matcher m = p.matcher(str);
		StringBuffer b = new StringBuffer();
		while (m.find()) {
			m.appendReplacement(b, URLEncoder.encode(m.group(0), charset));
		}
		m.appendTail(b);
		return b.toString();
	}
 
分享到:
评论
1 楼 saveunme 2012-04-20  
楼主,代码里的<span>是怎么回事啊....?

相关推荐

    基于JAVA CS远程监控系统软件的实现(源代码+WORD论文文档论文).zip

    5.主控端和被监控端读取和发送数据,分别来实现文件上传和下载。 6.在被监控端实现DOS命令的执行。 2.2.3 系统的关键技术 系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    java源码包4

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    JAVA文件传输的实现.rar

    文件下载:客户端从服务器端获取文件,实现文件的获取和同步。 断点续传:支持在文件传输过程中断,重新连接后能够从断点处继续传输,提高传输效率。 安全性:可以采用加密算法、身份验证等技术确保文件传输过程中...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    基于JAVA CS远程监控系统软件的实现.rar

    服务器端:部署在管理员端的服务器程序,接收和处理来自客户端的监控数据,提供远程控制和管理功能。 管理界面:管理员通过管理界面登录系统,查看监控画面、执行远程操作等。 技术实现: 远程桌面协议:使用基于...

    java源码包2

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...

    Java服务器程序设计

    用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系结构、开发工具和...

    基于JAVA CS远程监控系统软件的实现

    5.主控端和被监控端读取和发送数据,分别来实现文件上传和下载。 6.在被监控端实现DOS命令的执行。 系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端的通讯(命令收发、...

    JAVA_API1.6文档(中文)

    javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据...

    java开源包10

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包11

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包6

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包9

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包4

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

    java开源包101

    1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...

Global site tag (gtag.js) - Google Analytics