在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();
}
分享到:
相关推荐
5.主控端和被监控端读取和发送数据,分别来实现文件上传和下载。 6.在被监控端实现DOS命令的执行。 2.2.3 系统的关键技术 系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
文件下载:客户端从服务器端获取文件,实现文件的获取和同步。 断点续传:支持在文件传输过程中断,重新连接后能够从断点处继续传输,提高传输效率。 安全性:可以采用加密算法、身份验证等技术确保文件传输过程中...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...
服务器端:部署在管理员端的服务器程序,接收和处理来自客户端的监控数据,提供远程控制和管理功能。 管理界面:管理员通过管理界面登录系统,查看监控画面、执行远程操作等。 技术实现: 远程桌面协议:使用基于...
Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...
Tcp服务端与客户端的JAVA实例源代码 2个目标文件 摘要:Java源码,文件操作,TCP,服务器 Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多...
用java进行客户端的applet (小程序)开发的技术已广为使用,而用java进行服务器端的servlet(服务器小程序)开发则尚需揭开其神秘的面纱,本书正是基于这样的目的编写的。全书从java服务器的体系结构、开发工具和...
5.主控端和被监控端读取和发送数据,分别来实现文件上传和下载。 6.在被监控端实现DOS命令的执行。 系统使用的关键技术就是Java网络编程和Java图形编程。用Java网络编程实现主控端和被监控端的通讯(命令收发、...
javax.sql 为通过 JavaTM 编程语言进行服务器端数据源访问和处理提供 API。 javax.sql.rowset JDBC RowSet 实现的标准接口和基类。 javax.sql.rowset.serial 提供实用工具类,允许 SQL 类型与 Java 编程语言数据...
1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...
1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...
1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...
1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...
1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...
1、透明的调用远端服务器提供的功能,例如UserService.getUserNameById; 2、单连接或多连接; 3、连接复用,因此在多线程获取连接时无需阻塞; 4、同步调用; 5、超时机制; 6、支持多种通信框架(Mina/Netty/...