在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();
}
分享到:
相关推荐
在Java编程中,远程服务器的文件操作是一项常见任务,尤其在分布式系统和云计算环境中。本文将详细介绍如何使用Java实现这一功能,并提供相关的JAR包。主要涉及的技术包括Linux的SCP(Secure Copy)协议、Java的...
在远程监控场景中,RMI可用于建立客户端与服务器之间的通信,允许客户端发起请求以获取服务器端的监控数据。要使用RMI,你需要定义远程接口、实现该接口的远程对象,以及注册远程对象到RMI注册表。 实现步骤大致...
"Java Web使用pdf.js在线预览远程服务器上的pdf文件"这个主题涵盖了如何利用pdf.js库实现在Web环境中流畅、安全地预览PDF文档。pdf.js是Mozilla开发的一个开源项目,它允许开发者在浏览器端直接渲染PDF内容,无需...
双向通信意味着两个端点都可以同时发送和接收数据,这对于Java远程调用批处理文件至关重要,因为它允许Java程序发送指令到远程服务器并接收执行结果。 为了实现这个功能,我们可以创建一个服务器端应用,监听特定的...
`FileSelection` 类用于选择和组织待复制的文件,而 `BackupClient` 类则负责将这些文件通过网络传输到远程服务器进行备份。 1. **文件操作**: - **文件和目录处理**:`FileSelection` 类创建了一个 `File` 对象 ...
要实现远程文件下载,我们通常需要创建一个服务器端程序,它监听特定的端口,等待客户端的连接请求。服务器端接收到请求后,读取指定文件并将其内容发送到客户端。客户端则建立连接,接收服务器发送的数据,并将其...
Java类交互的远程服务器端Ajax开源框架DWR(Direct Web Remoting)是一个强大的工具,它允许Web应用程序在浏览器和服务器之间进行动态、实时的通信,无需刷新页面即可更新内容。DWR简化了JavaScript与Java之间的通信...
1. **服务器端集成**:在Servlet或Spring MVC等Web框架中集成`properJavaRDP`,处理用户的请求,建立和管理远程桌面连接。 2. **前端交互**:使用WebSocket或其他实时通信技术,将用户在浏览器中的操作传递到服务器...
在本场景中,我们利用Java RMI来实现实时的远程文件下载功能。下面将详细阐述如何使用Java RMI来实现这一目标。 首先,我们需要理解Java RMI的基本工作原理。RMI系统包含两部分:服务器端(Server)和客户端...
在提供的压缩包文件名列表中,我们看到有`ant.jar`和`commons-io-1.3.2.jar`这两个Java库,它们可能与服务器端处理文件上传或下载有关: 1. **ant.jar**: Apache Ant是一个Java库和命令行工具,其任务是驱动构建...
在Java编程中,判断远程服务器上文件是否存在是一个常见的需求,特别是在进行文件操作或者数据传输时。常规的`File.exists()`方法只能用于判断本地文件系统中的文件是否存在,对于远程文件,我们需要采用其他策略。...
2. **SpringMVC控制器**:在服务器端,SpringMVC的Controller需要接收并处理这个请求。使用`@RequestParam("file") MultipartFile file`注解来获取上传的文件。`MultipartFile`是Spring提供的一个接口,用于处理多...
* Description: FTP文件下载功能 * @Version 1.0 Jul 27, 2008 5:32:36 PM by cuihongbao@d-heaven.com * @param url FTP服务器地址 * @param port FTP服务器端口号 * @param username FTP用户名 * @param ...
在远程文件传输中,通常服务器端会监听一个特定的端口,等待客户端的连接请求,然后通过`Socket`建立连接。一旦连接建立,数据就可以通过输入输出流在两个端点之间传输。 2. **I/O流处理**:Java的I/O流是进行文件...
在基于Java的远程登录和文件传输中,我们主要关注的是...通过构建客户端和服务器端的交互,可以实现用户在不同地点的远程操作和文件交换。在实际项目中,还需要考虑安全性和性能优化等问题,确保服务的稳定性和可靠性。
在这个场景中,我们关注的是如何使用Java来实现文件压缩包的上传以及在服务器上的解压缩。Java作为一种强大的编程语言,提供了丰富的库来支持这样的操作,特别是在涉及到SFTP(Secure File Transfer Protocol)时,...
Java远程桌面连接是一种技术,允许用户通过网络访问和控制远程计算机的桌面环境,类似于Windows操作系统中的Remote Desktop Protocol (RDP)。在Java中,我们通常使用Java Remote Method Invocation (Java RMI) 或 ...
- **解析和加载jar包**:服务器端需要将接收到的字节流转换回jar文件,并使用Java的ClassLoader加载这个jar包。 - **执行命令**:找到jar包中的main方法,通过反射机制调用这个方法执行任务。 - **返回结果**:...
文件下载的流程与上传类似,但更侧重于处理响应中的流数据。关键步骤包括: 1. **创建ResponseBody的流**:当收到Response后,我们可以获取到ResponseBody,通过其`byteStream()`或`charStream()`方法获取流数据。 ...
实际项目中,这些文件可能包括`Uploader.java`(客户端代码)和`FileUploadServlet.java`(服务器端代码)。 8. **代码示例**: 由于篇幅限制,这里只提供一个简化的代码片段: - 客户端: ```java ...