FTPClient

接到一个需要与BI进行交互的任务,需要将任务数据写到BI部门的FTP服务器内,于是整理下了文件读写和FTPClient操作。
在具体分析前,我们还需要了解下java IO流操作:
1.BufferedInputStream是一个带有缓冲区的输入流,通常使用它可以提高我们的读取效率,也可以套在某个其他的InputStream外,装饰者模式,改善内部inputstream的性能。性能在某些情况下比FileInputStream好。
2.FileInputStream是字节流,FileReader是字符流,用字节流读取中文的时候,可能会出现乱码,而用字符流则不会出现乱码,而且用字符流读取的速度比字节流要快。
3.FileReader继承了InputStreamReader,但并没有实现父类中带字符集参数的构造函数,所以FileReader只能按系统默认的字符集来解码。

TXT文件读写的主要方法:
1.读:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(new File("")), "UTF-8"));
2.写:BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(""), true)));
也可以用FileReader或FileWriter,BufferdReader起到一个装饰器的作用。

FTPClient使用:
编码:默认的编码方式是“ISO-8859-1”,FTPClient继承了FTP类,可以在FTPClient对象中调用setControlEncoding方法修改编码。

上传文件类型:文本模式和二进制模式的区别在于对换行符的处理不同(我们知道,windows下的换行符为“\r\n",linux下的换行符为”\n“,mac下的换行符为”\r")。文本模式会对换行符进行处理,而二进制模式不会对文件做处理。一般用HTML和文本编写的文件必须用ASCII模式上传,用BINARY模式上传会破坏文件,导致文件执行出错。BINARY模式用来传送可执行文件,压缩文件,和图片文件。如果你用ASCII模式传,会显示一堆乱码,你必须重新用BINARY模式传。

主动被动模式:FTP主动模式就是FTP会用自己的20端口去主动得跟客户端建立连接,当客户端网络做NAT的时候会发生错误。把NAT的端口认为是客户端与FTP 20端口建立连接的
被动模式就是当建立ftp连接后,客户端发送一个被动模式请求给服务器,服务器选择一个数据端口监听,并把端口告诉客户端,客户端直接向数据端口发起连接,这样,即使中间有做NAT也不影响FTP数据传输通道建立。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值