Java实现Ftp单个文件的的上传和下载

package ftp;

import sun.net.ftp.*;
import sun.net.*;
import java.io.*;

public class MyFtp {
public static void main(String[] args) {
String ftpIP = "127.0.0.1";
String userName = "user";
String password = "password";
System.out.println("----------------------------------------");
System.out.println("----------Nice to meet you!-------------");


try {
String str;

FtpClient ftp = new FtpClient(ftpIP);

ftp.login(userName, password);
str = ftp.getResponseString();
System.out.println(str);

upload(ftp);


printFileList(ftp);
download(ftp);




} catch (Exception e) {
e.printStackTrace();
}
}

private static void printFileList(FtpClient ftp) throws IOException {
byte[] bt;
String str;
TelnetInputStream in = ftp.list();
str = ftp.getResponseString();
System.out.println(str);
ftp.binary();
bt = new byte[in.available()];
in.read(bt);
str = new String(bt);

System.out.println("The file list:");

System.out.println(str);

}

private static void upload(FtpClient ftp) throws IOException,
FileNotFoundException {
TelnetOutputStream putfile;

System.out.println("please input the name of file you want to upload:");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String filename = br.readLine();
putfile = ftp.put(filename);
BufferedReader fis = new BufferedReader(new FileReader(filename));
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("file upload success!");
}

private static void download(FtpClient ftp) throws IOException {
TelnetInputStream getfile;
String str;

System.out.println("Please input the name of the file you want to download:");
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String filename = br.readLine();

getfile = ftp.get(filename);
str = ftp.getResponseString();
System.out.println(str);
//ftp.ascii();
ftp.binary();
str = ftp.getResponseString();
System.out.println(str);

InputStreamReader isrFile = new InputStreamReader(getfile);
BufferedReader b = new BufferedReader(isrFile);
//BufferedWriter writer = new BufferedWriter(b);
BufferedWriter writer = new BufferedWriter(new FileWriter(new File(filename)));
// writer = new BufferedWriter(new FileWriter(new File(
//"test.txt")));
while (true) {
String s = b.readLine();
if (s == null)
break;
else
writer.write(s);
writer.flush();
writer.newLine();
}
writer.close();
isrFile.close();
b.close();
getfile.close();

System.out.println("file download success!");

}
}

在结尾我得说一句:
为了测试 得自己下载个软件把自己作为Ftp服务器
要是联网了呢 就通过ipconfig查看自己的IP 那个就是FTP地址啦
如果没有联网 那么ftp地址就是127.0.01
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值