- 浏览: 337783 次
- 性别:
- 来自: 济南
文章分类
最新评论
-
u013810758:
[flash=200,200][url][img][list] ...
poi 解析excel 03与07不兼容问题 -
u013810758:
我也是这么做的 但是还是有问题啊 感觉07版的或03版的内容 ...
poi 解析excel 03与07不兼容问题 -
sezi915:
我觉得如果用异常来判断Excel版本的话 用org.apach ...
poi 解析excel 03与07不兼容问题 -
他大姨妈:
思路很好,楼主脑子比较好使
poi 解析excel 03与07不兼容问题 -
zhenlong_qu:
谢谢博主的这篇文章,不得不说,博主的思路真不错,按照这个思路, ...
poi 解析excel 03与07不兼容问题
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.StringWriter;
import java.util.Properties;
import java.util.StringTokenizer;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
/**
*
* Function Description:FTP 功能类,含put和get方法
*/
public class AppendFtp extends FTPClient {
private Properties envs=getEnvVars();
/*private static org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger(AppendFtp.class);*/
public void logException(Exception ae){
StringWriter sw= new StringWriter();
PrintWriter pw =new PrintWriter(sw);
ae.printStackTrace(pw);
//logger.info(sw.getBuffer());
}
public boolean upload(String remote, String fileName, String local) throws IOException {
ftp.enterLocalPassiveMode();
// if(fileName.endsWith(".rar") || fileName.endsWith(".zip") || fileName.endsWith(".jar")) {
ftp.setFileType(FTPClient.BINARY_FILE_TYPE); //2进制文件时,防止文件损坏
// }
boolean result;
ftp.changeWorkingDirectory(remote); //进入ftp目录
boolean isExists = false;
long fileSize=123;
FTPFile[] files = ftp.listFiles();
for (int i = 0; i < files.length; i++) {
FTPFile file = files[i];
System.out.println(fileName+"--fileName-------------file.getName()-"+file.getName());
if(fileName.equals(file.getName())) {
isExists = true;
fileSize=file.getSize();
break;
}
}
if(isExists) {
//文件存在时, 使用断点上传方式
System.out.println("fileSize:" + fileSize);
File fLocal = new File(local);
OutputStream os=ftp.appendFileStream(fileName);
RandomAccessFile randomAccessFileLocal = new RandomAccessFile(fLocal, "r");
randomAccessFileLocal.seek(fileSize);
int len = 0;
byte[] bt = new byte[1024];
while ((len = randomAccessFileLocal.read(bt)) > 0) {
os.write(bt, 0, len);
}
randomAccessFileLocal.close();
os.close();
result = true;
} else {
System.out.println("create");
//不存在时, 直接上传
File f = new File(local);
FileInputStream in = new FileInputStream(f);
result = ftp.storeFile(fileName, in);
in.close();
}
if(fileName.indexOf("ExpDat")>-1){
boolean deleted=new File(local).delete();
if(deleted)
System.out.println("delete file ok!");
else
System.out.println("delete not ok!");
}
System.out.println("upload ok");
return result;
}
/**
* 建立FTP连接
*/
public boolean connect(String hostname, int port, String username,
String password) throws IOException {
ftp.connect(hostname, port);
ftp.login(username, password);
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
disconnect();
return false;
}
return true;
}
/**
* 关闭FTP连接
*/
public void disconnect() throws IOException {
if (ftp.isConnected()) {
ftp.disconnect();
}
}
public FTPClient ftp;
public void sss(){
ftp=new FTPClient();
File fExpDat=new File(envs.getProperty("COMPIERE_HOME")+"/data/ExpDat.jar");
File fCompiereJar=new File(envs.getProperty("COMPIERE_HOME")+"/lib/Compiere.jar");
String ExpDatPath=fExpDat.getPath();
String CompiereJarPath=fCompiereJar.getPath();
System.out.println("==ExpDatPath=="+ExpDatPath);
System.out.println("==CompiereJarPath=="+CompiereJarPath);
try {
if(connect("www.zoapcon.com",21,"zoap","zoapfaxftp"))
System.out.println("login ok!");
upload("Alison","ExpDat.jar",ExpDatPath);
upload("Alison","Compiere.jar",CompiereJarPath);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
AppendFtp ftpClient = new AppendFtp();
ftpClient.sss();
}
public static Properties getEnvVars() {
Process p = null;
Properties envVars = new Properties();
try {
Runtime r = Runtime.getRuntime();
String OS = System.getProperty("os.name").toLowerCase();
// System.out.println(OS);
if (OS.indexOf("windows 9") > -1) {
p = r.exec("command.com /c set");
} else if ((OS.indexOf("nt") > -1)
|| (OS.indexOf("windows 20") > -1)
|| (OS.indexOf("windows xp") > -1)) {
// thanks to JuanFran for the xp fix!
p = r.exec("cmd.exe /c set");
} else {
// our last hope, we assume Unix (thanks to H. Ware for the fix)
p = r.exec("env");
}
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
int idx = line.indexOf('=');
String key = line.substring(0, idx);
String value = line.substring(idx + 1);
envVars.setProperty(key, value);
// System.out.println( key + " = " + value );
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
return envVars;
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.StringWriter;
import java.util.Properties;
import java.util.StringTokenizer;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
/**
*
* Function Description:FTP 功能类,含put和get方法
*/
public class AppendFtp extends FTPClient {
private Properties envs=getEnvVars();
/*private static org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger(AppendFtp.class);*/
public void logException(Exception ae){
StringWriter sw= new StringWriter();
PrintWriter pw =new PrintWriter(sw);
ae.printStackTrace(pw);
//logger.info(sw.getBuffer());
}
public boolean upload(String remote, String fileName, String local) throws IOException {
ftp.enterLocalPassiveMode();
// if(fileName.endsWith(".rar") || fileName.endsWith(".zip") || fileName.endsWith(".jar")) {
ftp.setFileType(FTPClient.BINARY_FILE_TYPE); //2进制文件时,防止文件损坏
// }
boolean result;
ftp.changeWorkingDirectory(remote); //进入ftp目录
boolean isExists = false;
long fileSize=123;
FTPFile[] files = ftp.listFiles();
for (int i = 0; i < files.length; i++) {
FTPFile file = files[i];
System.out.println(fileName+"--fileName-------------file.getName()-"+file.getName());
if(fileName.equals(file.getName())) {
isExists = true;
fileSize=file.getSize();
break;
}
}
if(isExists) {
//文件存在时, 使用断点上传方式
System.out.println("fileSize:" + fileSize);
File fLocal = new File(local);
OutputStream os=ftp.appendFileStream(fileName);
RandomAccessFile randomAccessFileLocal = new RandomAccessFile(fLocal, "r");
randomAccessFileLocal.seek(fileSize);
int len = 0;
byte[] bt = new byte[1024];
while ((len = randomAccessFileLocal.read(bt)) > 0) {
os.write(bt, 0, len);
}
randomAccessFileLocal.close();
os.close();
result = true;
} else {
System.out.println("create");
//不存在时, 直接上传
File f = new File(local);
FileInputStream in = new FileInputStream(f);
result = ftp.storeFile(fileName, in);
in.close();
}
if(fileName.indexOf("ExpDat")>-1){
boolean deleted=new File(local).delete();
if(deleted)
System.out.println("delete file ok!");
else
System.out.println("delete not ok!");
}
System.out.println("upload ok");
return result;
}
/**
* 建立FTP连接
*/
public boolean connect(String hostname, int port, String username,
String password) throws IOException {
ftp.connect(hostname, port);
ftp.login(username, password);
if (!FTPReply.isPositiveCompletion(ftp.getReplyCode())) {
disconnect();
return false;
}
return true;
}
/**
* 关闭FTP连接
*/
public void disconnect() throws IOException {
if (ftp.isConnected()) {
ftp.disconnect();
}
}
public FTPClient ftp;
public void sss(){
ftp=new FTPClient();
File fExpDat=new File(envs.getProperty("COMPIERE_HOME")+"/data/ExpDat.jar");
File fCompiereJar=new File(envs.getProperty("COMPIERE_HOME")+"/lib/Compiere.jar");
String ExpDatPath=fExpDat.getPath();
String CompiereJarPath=fCompiereJar.getPath();
System.out.println("==ExpDatPath=="+ExpDatPath);
System.out.println("==CompiereJarPath=="+CompiereJarPath);
try {
if(connect("www.zoapcon.com",21,"zoap","zoapfaxftp"))
System.out.println("login ok!");
upload("Alison","ExpDat.jar",ExpDatPath);
upload("Alison","Compiere.jar",CompiereJarPath);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args){
AppendFtp ftpClient = new AppendFtp();
ftpClient.sss();
}
public static Properties getEnvVars() {
Process p = null;
Properties envVars = new Properties();
try {
Runtime r = Runtime.getRuntime();
String OS = System.getProperty("os.name").toLowerCase();
// System.out.println(OS);
if (OS.indexOf("windows 9") > -1) {
p = r.exec("command.com /c set");
} else if ((OS.indexOf("nt") > -1)
|| (OS.indexOf("windows 20") > -1)
|| (OS.indexOf("windows xp") > -1)) {
// thanks to JuanFran for the xp fix!
p = r.exec("cmd.exe /c set");
} else {
// our last hope, we assume Unix (thanks to H. Ware for the fix)
p = r.exec("env");
}
BufferedReader br = new BufferedReader(new InputStreamReader(p
.getInputStream()));
String line;
while ((line = br.readLine()) != null) {
int idx = line.indexOf('=');
String key = line.substring(0, idx);
String value = line.substring(idx + 1);
envVars.setProperty(key, value);
// System.out.println( key + " = " + value );
}
} catch (IOException ioe) {
ioe.printStackTrace();
}
return envVars;
}
}
发表评论
-
http断点续传
2014-07-24 13:31 949Http文件下载的普通模式就不多说了,断点下载与普通模式不一 ... -
修改Tomcat的运行内存 & JSP中查看当前的内存使用状况
2014-03-24 16:00 1035一、设置JVM内存设置 1. 设置JVM内存的参数有 ... -
Eclipse编码格式修改
2014-03-21 09:13 803如果要使插件开发应 ... -
标题叠加在图片上面的几种显示方式
2014-02-24 10:55 1504很多新改版的网站都会在图片显示上下一些文章,比如加 ... -
java druid淘宝数据库连接池数据库监听
2013-12-26 15:40 13512java程序很大一部分 要操作数据库,为了提高性能操作数据库 ... -
memcached- tomcat配置详解
2013-12-04 18:08 1434msmconfigurationmemcached-se ... -
Oracle中将小数转换成字符丢零.截取小数.除数为零解决法
2013-11-26 14:33 83261.小数转换成字符往往会丢失前面的零.解决方法_例:to_c ... -
java 垃圾回收配置
2013-10-22 14:16 4493一、JVM内存模型及垃 ... -
nginx配置详解
2013-10-18 14:45 1084user nginx ; #用户 ... -
oracle 列转行
2013-10-11 21:15 16310业务中做报表,需要将一列列数据汇总成一行,然后汇总,如下: ... -
osgi 注册servlet 和资源
2013-10-08 10:02 1695在Activator类中 public void s ... -
正则表达式 匹配url
2013-07-09 14:27 1585正则表达式 (http|ftp|https):\ ... -
ZooKeeper 集群配置
2013-07-05 14:40 1198ZooKeeper 是一个分布式开源框架,提供了协调 ... -
jdk logger 配置实用宝典
2013-06-18 15:45 1856日志输出是所有系统必备的,很多开发人员可能因为常常使用log ... -
CSS实现兼容性的渐变背景(gradient)效果
2013-06-05 14:32 1042CSS实现兼容性的渐变背 ... -
jinterop获取windows事件
2013-05-27 13:42 1874Java代码 package com ... -
jcifs windows主机之间进行网络文件共享
2013-05-20 18:05 1220CIFS (Common Internet File ... -
java调用windows的wmi
2013-05-20 14:34 2074100%纯java调用windows的wmi获取监控数据 ... -
java调用windows的wmi
2013-05-20 14:32 4114100%纯java调用windows的wmi获取监控数据 ... -
tomcat 域名
2013-03-14 14:44 19311. 下载安装版本的Tomcat(或者压缩版的,只不过要自己配 ...
相关推荐
综上所述,FTP断点上传和断点下载是提高大文件传输效率的关键技术,VS2005提供了一套完善的工具和类库来实现这些功能。开发者可以通过理解FTP的工作原理和.NET Framework的FTP支持,创建可靠的断点续传功能,提升...
在IT领域,尤其是在Windows Presentation Foundation (WPF)的开发中,构建一个支持FTP断点上传和下载的功能是一项常见的任务。WPF是微软提供的一种用于构建桌面应用的UI框架,而FTP(File Transfer Protocol)则是一...
python ftp断点上传下载,支持主、从模式断点上传及下载
以上就是使用Java和Apache Commons Net库实现FTP断点续传的基本步骤。在实际应用中,你可能还需要处理异常,优化文件读写性能,以及考虑其他因素,如重试机制、错误处理等。了解这些知识点将使你能够高效地实现在...
基于apache commons-net.3.2.jar包开发,能实现ftp断点上传、下载、创建目录、切换目录等功能。 说明:需要安装ftp服务器如server-u,filezila等。直接导出的myeclipse java 工程,导入既可以。 环境:myeclipse8.5+...
在Java中实现FTP断点上传是一项常见的任务,特别是在文件传输需求中。Apache Commons Net库提供了一个强大且方便的API来处理FTP操作,包括断点上传。以下是对标题和描述中所述知识点的详细解释: 首先,我们需要...
在本文中,我们将深入探讨如何使用C#编程语言来实现FTP(文件传输协议)上传功能,特别是支持断点续传的特性。FTP是一种标准网络协议,用于在客户端和服务器之间交换文件。C#中的System.Net命名空间提供了丰富的类库...
总的来说,多线程FTP断点上传是一项复杂但高效的文件上传技术,它结合了多线程并行处理的优势和断点续传的容错性,是现代FTP客户端软件不可或缺的功能。在实际开发中,需要对网络协议、多线程编程和错误处理有深入的...
在实现FTP断点下载和上传时,通常会使用编程语言中的FTP库或工具。例如,在Java中,可以使用Apache Commons Net库,它提供了FTPClient类来支持FTP功能,包括断点续传。Python中则有ftplib模块,同样可以处理此类...
实现FTP断点续传的关键在于保存和识别已传输的数据位置。这通常通过记录文件的当前位置(偏移量)和已传输的字节数来完成。当上传暂停后,客户端可以记住这个位置,再次连接时,只需从上次断开的地方开始继续传输。 ...
要利用libcurl实现FTP断点续传,首先需要了解libcurl的基本用法。在提供的压缩包中,可能包含libcurl的动态链接库(dll)、静态库(lib)、头文件(.h)以及示例代码(cpp)。这些文件是构建使用libcurl的C/C++程序...
本设计实现了ftp的设计,使用了socket网络编程,ftp基于cs模式,包含客户端和服务端,可以实现上传、下载、删除、添加等各种功能,支持断点续传、多用户登陆、错误日志等功能。运行环境是linux,压缩包内含有源代码...
linux下C语言实现FTP支持断点续传的上传和下载
标题中的"C# ftp 客户端支持断点上传"指的是开发一个C#程序,该程序能够作为FTP客户端,并且具备在上传过程中暂停和恢复的能力。这通常涉及到以下几个关键技术点: 1. **FTP协议理解**:FTP协议包括两个通道,控制...
标题"XuChuanFTP_Java_FTP断点续传"可能是指一个Java实现的FTP客户端库或者一个示例项目,专注于支持FTP的断点续传功能。这个项目可能是为了帮助开发者更方便地处理大文件的上传任务,尤其是在网络不稳定的情况下。 ...
ftp 断点续传实现 FTP 是一个非常常用的文件传输协议,它可以帮助用户上传和下载文件到远程服务器中。...通过了解 FTP 协议和断点续传的实现方法,我们可以更好地使用 FTP 协议来上传和下载文件。
在这个Java FTP项目中,我们关注的是如何实现FTP的断点续传功能,以及如何利用Java进行多线程FTP上传。 断点续传是FTP的一个重要特性,它允许在文件传输中断后从上次停止的地方继续,而不是重新开始整个文件的传输...
c#上传下载ftp(支持断点续传) 代码完全通俗易懂 注释完整
FTP断点续传是网络上传下载技术中的一个重要概念,它允许用户在中断连接后从上次停止的地方继续传输文件,极大地提高了文件传输的效率和可靠性。本压缩包“Ftp断点续传源码.rar”提供了使用Delphi编程语言实现FTP...