【Java开源代码栏目提醒】:本文主要为网学会员提供TextFTPFileTran.java,希望对需要TextFTPFileTran.java网友有所帮助,学习一下!
package com.zf.s13;//创建一个包
import sun.net.ftp.*;//引入类
import sun.net.*;
import java.io.*;
public class TextFTPFileTran {// 操作模拟FTP文件传输的类
private TelnetInputStream getfile;
private TelnetOutputStream putfile;
private String info;
private FtpClient ftp = null;
public void loginServer() {//访问FTP服务器
try {
ftp = new FtpClient("192.168.2.103");// 与服务器建立连接,IP为192.168.2.103
} catch (IOException e) {// 捕获异常
System.out.println("不能与指定服务器进行连接:" + e.getMessage());
}
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("与FTP服务器进行连接:" + info);
try {
ftp.login("USER", "123456");// 登陆到Ftp服务器
} catch (IOException e) {// 捕获异常
System.out.println("用户没有权限访问服务器或没有该用户:" + e.getMessage());
}
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("登录FTP服务器:" + info);
}
public void downLoadText() throws IOException {// 下载文本文件的代码
getfile = ftp.get("poems.txt");//获得FTP服务器指定目录下的文本文件
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("获得FTP服务器上poems.txt文件:" + 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(
"F:/temp/poems1.txt")));//创建缓冲写对象
while (true) {//循环将FTP服务器上的文本文件写入本地文件中
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("下载文本文件poems.txt到本地F:/temp/poems1.txt成功");
}
public void downLoadBinary() throws Exception {// 下载二进制文件的代码
ftp.binary();//下载上传二进制文件标志
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("下载二进制文件:" + info);
getfile = ftp.get("poem.jar");//获取FTP服务器指定目录下的jar文件
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("获得FTP服务器上poem.jar文件:" + info);
FileOutputStream output = new FileOutputStream(//创建文件输出流
new File("F:/poem1.jar"));
while (true) {//循环将FTP服务器上的jar文件写入到本地文件
int i = getfile.read();//读取jar文件信息
if (i == -1)
break;
else {
output.write((byte) i);//按字节写入文件中
output.flush();//刷新,只有刷新才能写入文件成功
}
}
getfile.close();//释放资源
output.close();
System.out.println("下载二进制文件poem.jar到本地F:/temp/poem1.jar成功");
}
public void uploadText() throws Exception {// 上传文本文件的代码
ftp.ascii();//上传下载文本文件要标志
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("上传文本文件:" + info);
putfile = ftp.put("poem.html");//获取FTP服务器端指定目录下的html文件
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("设置上传到FTP服务器上的文件poem.html:" + info);
BufferedReader fis = new BufferedReader(//创建缓冲读对象
new FileReader("F:/poem.html"));
BufferedWriter fos = new BufferedWriter(//创建缓冲写对象
new OutputStreamWriter(putfile));
while (true) {//循环将本地html文件写到FTP服务器的文件中
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("上传本地文本文件F:/poem.html到FTP服务器成功,名为poem.html");
}
public void updateDirUpload() throws Exception {//更改FTP服务器指定当前目录并上传文件
TelnetInputStream in = null;
try {
in = ftp.list();// 获得当前目录列表
} catch (IOException 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 (IOException e) {// 捕获异常
System.out.println("读取目录列表信息:" + e.getMessage());
}
System.out.println("----"+info);
try {
ftp.cd("show");// 改变当前目录,进入show目录下
} catch (IOException e) {// 捕获异常
System.out.println("无法改变当前目录:" + e.getMessage());
}
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("改变当前目录为show" + info);
ftp.binary(); //下载上传二进制文件标志
putfile = ftp.put("poem2.html");//上传到FTP服务器的文件,名为poem2.html
info = ftp.getResponseString();// 获取服务器响应的信息
System.out.println("上传到FTP服务器的文件名为poem2.html" + info);
FileInputStream fs = new FileInputStream("F:\\poem.html");//创建文件输入流
while (true) {//循环将本地html文件上传到FTP服务器中show目录下
int i = fs.read();//读取html文件信息
if (i == -1)
break;
else {
putfile.write((byte) i);////按字节写入文件中
putfile.flush();//刷新,只有刷新才能写入文件成功
}
}
putfile.close();//释放资源
fs.close();
System.out.println("本地文件F:\\poem.html上传到FTP服务器上目录show下,名为poem2.html成功");
}
public static void main(String[] args) throws Exception {// java程序主入口处
TextFTPFileTran text = new TextFTPFileTran();//实例化对象
text.loginServer();//调用方法访问FTP服务器
text.downLoadText();//调用方法下载文本文件
text.downLoadBinary();//调用方法下载二进制文件
text.uploadText();//调用方法上传文本文件
text.updateDirUpload();//调用方法改变当前目录上传二进制文件
}
}
上一篇:
TextForm.java
下一篇:
ASP小区停车管理系统(Access)(含录像)