(一)、Sun FtpClient

来源:互联网 发布:人工智能时代的危机 编辑:程序博客网 时间:2024/05/18 02:40

项目实践中遇到Ftp传输问题,在这里做个专辑。
第一篇还是介绍一下sun提供的FtpClient.这个也是网上说的最多的,在这里我只是给出例程,不再做详细的解释。sun提供的FtpClient简单宜用,不支持任何加密方式;并没有提供相应的api,所以给我们调试带来不便,与其说是sun足够自信说这个组件简单到不用api就可以完全满足应用,还不如说不负责任。其实在开发中会遇到各种问题,实践中就遇到上传文件到一定数量级后传输会变慢(很慢),但程序并不报错;用ftp客户端桌面软件测试发现连续传输1000个左右文件报错率为4,可能FtpClient在开发时候对异常捕捉不全面。但如果在小数据量和没有用加密方式认证和传输的情况下,FtpClient仍不失是一个很好的选择。
下面是例程:

 

Java代码 复制代码
  1. public class TestFtpClient {   
  2.   
  3.     /**  
  4.      * @param args  
  5.      */  
  6.     public static void main(String[] args) {   
  7.         FtpClient ftpClient;   
  8.         // server:FTP服务器的IP地址   
  9.         String server = "127.0.0.1";   
  10.         // user:登录FTP服务器的用户名   
  11.         String user = "username";   
  12.         // password:登录FTP服务器的用户名的口令   
  13.         String password = "password";   
  14.         // path:FTP服务器上的路径   
  15.         String path = "/path/";   
  16.         // 要上传本地文件路径   
  17.         String filename = "D:" + File.separator + "test.txt";   
  18.         // 上传服务器上文件名   
  19.         String ftpFile = "test.txt";   
  20.   
  21.         try {   
  22.                
  23.             ftpClient = new FtpClient(server);   
  24.             //ftpClient.openServer(server,21);   
  25.             ftpClient.login(user, password);   
  26.             System.out.println("Login .......");   
  27.                
  28.             // path是ftp服务下主目录的子目录   
  29.             if (path.length() != 0)   
  30.                 ftpClient.cd(path);   
  31.             // 用2进制上传   
  32.             ftpClient.binary();   
  33.   
  34.             TelnetOutputStream os = null;   
  35.             FileInputStream is = null;   
  36.   
  37.             os = ftpClient.put(ftpFile);   
  38.             File file_in = new File(filename);   
  39.             if (file_in.length() == 0) {   
  40.                 throw new Exception("上传文件为空!");   
  41.             }   
  42.             is = new FileInputStream(file_in);   
  43.             byte[] bytes = new byte[1024];   
  44.             int c;   
  45.             while ((c = is.read(bytes)) != -1) {   
  46.                 os.write(bytes, 0, c);   
  47.             }   
  48.   
  49.             System.out.println("上传文件成功!");   
  50.             is.close();   
  51.             os.close();   
  52.         } catch (FileNotFoundException e) {   
  53.             e.printStackTrace();   
  54.         } catch (IOException e) {   
  55.             e.printStackTrace();   
  56.         } catch (Exception e) {   
  57.             e.printStackTrace();   
  58.         }    
  59.   
  60.     }   
  61. }  

 

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 匿名收到饿了吗怎么办 农行卡被冻结了怎么办 被银行冻结的钱怎么办 蚂蚁花呗冻结了怎么办 淘宝号被冻结了怎么办 qq钱包被冻结了怎么办 浦发信用卡降额怎么办 外地邮政卡丢了怎么办 手机掉了,支付宝怎么办 支付宝手机丢了怎么办 手机丢了,微信怎么办 手机丢后支付宝怎么办 oppo手机被偷了怎么办 三星手机被偷了怎么办 手机被偷了号码怎么办 手机被偷 微信怎么办 手机被偷怎么办,还关机 我的手机被偷了怎么办 医保卡不能用了怎么办 招行u盾丢了怎么办 信用卡刷爆了要怎么办 办分期的卡丢了怎么办 房贷银行卡掉了怎么办 房贷银行卡丢了怎么办? 行驶证丢了怎么办补办 行驶证丢了怎么办异地 浦发信用卡盗刷怎么办 苹果id被盗变砖怎么办 信用卡丢了被刷怎么办 ins注册不了怎么办安卓 偷玩电脑被发现怎么办 做作业不认真的怎么办 老人脑供血不足怎么办 哺乳期吃了辣的怎么办 孕32周胎位臀位怎么办 怀孕32周胎位不正怎么办 7个月胎位不正怎么办 胎心监护老不过怎么办 8个月了胎位不正怎么办 怀孕八个月了胎位不正怎么办 怀孕八个月胎位不正怎么办