首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

FTP 下传 上载 登录

2013-03-14 
FTP 上传下载登录1.使用 Serv-U 在本机上创建一个 FTP服务器http://www.serv-u.com/2.FTP 登录 下载 上传

FTP 上传 下载 登录
1.使用 Serv-U 在本机上创建一个 FTP服务器   http://www.serv-u.com/
2.FTP 登录 下载 上传 文本文件 二进制文件


package com.itheima.net;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import sun.net.TelnetInputStream;import sun.net.TelnetOutputStream;import sun.net.ftp.FtpClient;/** * 模拟FTP文件传输 * @author Bin */public class TextFTPFileTran{// 对于导入 sun.net.TelnetInputStream; 报错 是权限不足 myeclise 默认不是使用sun 下面的额工具类 也可以自己建立一个 TelnetInputStream 继承 FilterInputStream 就可以了 // 项目 -->右键  -->property-->Java buil path--->lib-->// -->jre-system library-->Access rule-->edit-->Add-->Accessible sun/**-->OK  private TelnetInputStream getfile;private TelnetOutputStream putfile;private String info;private FtpClient ftp=null;private static final String serverIp="192.168.1.111";private static final String userName="root";private static final String passwd="123456";/** * @param args * @throws IOException  */public static void main(String[] args) throws IOException {// TODO Auto-generated method stub/** * 开始前  Ser-U 已经建立了一个FTP文件服务器 在管理员中 有个root 用户  密码 123456  * 根目录 /  = E:\360Downloads (包含:ebj-1.jpg , 123.html, 里面有个 show文件夹)  * 本地目录 F: 包含(getopt.jar ,plant.xml) */String fileName="123.html",fileName1="ebj-1.jpg",destFile="E:/123.html",destFile2="F:/ebj-1.jpg",upFile="F:/plant.xml",destFile1="plant.xml",currentDir="show",destFile3="getopt.jar",upFile1="F:/getopt.jar";TextFTPFileTran text=new TextFTPFileTran();System.out.println("=================1.登录");text.loginServer();System.out.println("=================2.从 E:/360Downloads 下载  123.html");text.downLoadText(fileName, destFile);System.out.println("=================3.从 E:/360Downloads 下载  ebj-1.jpg");text.downLoadBinary(fileName1, destFile2);System.out.println("=================4.上传F:/plant.xml  到  E:/360Downloads");text.uploadText(upFile, destFile1);System.out.println("=================4.上传F:/getopt.jar 到  E:/360Downloads");text.updateDirUpload(currentDir, destFile3, upFile1);}public void loginServer(){try {ftp=new FtpClient(serverIp);//与服务器建立连接 } catch (Exception e) {// TODO: handle exceptionSystem.out.println("不能与指定服务器简历连接:"+e.getMessage());}info=ftp.getResponseString(); //获取服务器响应的信息System.out.println("与FTP服务器进行连接:"+info);try {ftp.login(userName, passwd);} catch (Exception e) {System.out.println("用户登录失败:"+e.getMessage());}info=ftp.getResponseString();// 获取服务器响应信息System.out.println("登录服务器:"+info);}//获取服务器指定 目录下的文件 到本地目录下的文件public void downLoadText(String fileName,String destFile) throws IOException{getfile=ftp.get(fileName);info=ftp.getResponseString(); //获取服务器的响应信息System.out.println("获取服务器上的"+fileName+"文件:"+info);ftp.ascii(); //标志要上传下载的文件info=ftp.getResponseString(); //获取服务器的响应的信息System.out.println("下载文本文件:"+info);//创建输入路读取对象InputStreamReader isr=new InputStreamReader(getfile);//创建缓冲读取对象BufferedReader b=new BufferedReader(isr);//创建 缓冲写对象BufferedWriter writer=new  BufferedWriter(new FileWriter(new File(destFile)));while(true){String s=b.readLine();if(s==null){break;}else{writer.write(s);}writer.flush();writer.newLine();}writer.close();isr.close();b.close();getfile.close();System.out.println("下载文件"+fileName+"到本地"+destFile+"成功");}//下载而进制的文件代码public void downLoadBinary(String fileName,String destFile) throws IOException{ftp.binary(); //标志 上传下载 二进制的文件info=ftp.getResponseString();// 获取响应信息System.out.println("下载二进制文件:"+info);getfile=ftp.get(fileName);info=ftp.getResponseString();// 获取响应信息System.out.println("获取FTP服务器上的"+fileName+"文件:"+info);FileOutputStream output=new FileOutputStream(new File(destFile));while(true){int i=getfile.read();if(i==-1){break;}else{output.write((byte)i);output.flush();}}getfile.close();output.close();System.out.println("下载二进制文件"+fileName+"文件到本地:"+destFile);}public void uploadText(String upFile,String destFile) throws IOException{ftp.ascii(); //标致 要上传下载文件info=ftp.getResponseString();// 获取响应信息System.out.println("上传文本文件:"+info);putfile=ftp.put(destFile);info=ftp.getResponseString();// 获取响应信息System.out.println("设置上传到FTP服务器上的"+upFile+"文件:"+info);//创建缓冲读对象BufferedReader fis=new BufferedReader(new FileReader(upFile)); //创建缓冲写对象BufferedWriter fos=new BufferedWriter(new OutputStreamWriter(putfile));while(true){String i=fis.readLine();if(i==null)break;else{fos.write(i); //写入文件中fos.flush(); //刷新 只有刷新才能写入文件成功fos.newLine();// 换行}}putfile.close();fis.close();fos.close();System.out.println("上传本地"+upFile+"文件到FTP服务器成功,路径为:"+destFile);}//更改FTP制定目录并且上传文件public void updateDirUpload(String currentDir,String destFile,String upFile) throws IOException{TelnetInputStream in=null;try {in=ftp.list(); //获取当前目录列表} catch (Exception e) {System.out.println("无法获取目录列表:"+e.getMessage());}info=ftp.getResponseString(); //获取服务器响应信息System.out.println("获取当前目录列表:"+info);try {int  ch;StringBuffer buf=new StringBuffer();in=ftp.list();//得到主机端当前目录下的所有文件和目录输入数据流while ((ch=in.read())>=0) {buf.append((char)ch);}in.close();System.out.println(buf);}catch (Exception e) {System.out.println("读取目录列表的信息:"+e.getMessage());}System.out.println("---"+info);try {ftp.cd(currentDir); //改变当前目录进入show目录下} catch (Exception e) {System.out.println("无法改变当前目录:"+e.getMessage());}info=ftp.getResponseString();System.out.println("改变当前"+currentDir+"目录:"+info);ftp.binary();// 上传下载二进制文件的标致putfile=ftp.put(destFile);// 设置上传的文件名info=ftp.getResponseString();System.out.println("上传到FTP服务器的文件名为:"+destFile+"信息"+info);//创建文件输入流FileInputStream fs=new FileInputStream(upFile);  while(true){int i=fs.read(); //读取Html文件if(i==-1)break;else{putfile.write((byte)i); //按字节写入文件中putfile.flush(); //刷新后才能写入成功!}}putfile.close();fs.close();System.out.println("本地文件"+upFile+"上传到FTP服务网上的"+currentDir+"目录下的"+destFile);}}

1 楼 regale 7 分钟前   jdk7跟6不兼容

热点排行