package junit;
import java.io.*;
import sun.net.TelnetInputStream;
import sun.net.ftp.*;
import java.util.zip.*;
public class Testaa {
private static String path = "D:/";
private static String filenameTemp;
public static void main(String[] args) throws FileNotFoundException,
IOException, InterruptedException {
// TODO 从FTP服务器下载文件为压缩包
File f = new File("aaa.zip"); // 文件MyZIPFile.zip是最终的压缩包
String fileToDownload = ""; // 将要下载的文件名称
TelnetInputStream is = null;
byte[] b = new byte[1000];
int length = 0;
FtpClient ftp = new FtpClient("222.161.209.50", 10021);
ftp.login("yhtc_gxyh_b", "yhtc_gxyh_b2015");
if (!ftp.serverIsOpen()) {
System.out.println("Failed to login to 192.168.1.10");
return;
}
ftp.cd("/");// 设置服务器端的工作目录
ftp.binary();// 切换传输方式为二进制
if (!f.exists()) // 确认压缩文件被创建
{
f.createNewFile();
}
// 用文件输出流构建ZIP压缩输出流
ZipOutputStream zipos = new ZipOutputStream(new FileOutputStream(f));
zipos.setMethod(ZipOutputStream.DEFLATED); // 设置压缩方法
fileToDownload = "user_plan_info_20150921.txt";
is = ftp.get(fileToDownload);
// b = new byte[is .getBytes().length];
zipos.putNextEntry(new ZipEntry(fileToDownload));
// 生成一个ZIP entry,写入文件输出流中,并将输出流定位于entry起始处。
DataOutputStream os = new DataOutputStream(zipos);
// System.out.println("222");
while (true) {
String readLine = readLine(is);
if (null != readLine && !readLine.equals("")) {
String message = new String(readLine.getBytes("iso-8859-1"),
"gb2312");
if (message.indexOf("155907482991") == -1) {
continue;
}
System.out.println(message);
}
break;
}
is.close();
os.close();// 关闭数据流
}
/**
* 创建文件
*
* @throws IOException
*/
public static boolean creatTxtFile(String name) throws IOException {
boolean flag = false;
filenameTemp = path + name + ".txt";
File filename = new File(filenameTemp);
if (!filename.exists()) {
filename.createNewFile();
flag = true;
}
return flag;
}
/**
* 写文件
*
* @param newStr
* 新内容
* @throws IOException
*/
public static boolean writeTxtFile(String newStr) throws IOException {
// 先读取原有文件内容,然后进行写入操作
boolean flag = false;
String filein = newStr + "\r\n";
String temp = "";
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader br = null;
FileOutputStream fos = null;
PrintWriter pw = null;
try {
// 文件路径
File file = new File(filenameTemp);
// 将文件读入输入流
fis = new FileInputStream(file);
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
StringBuffer buf = new StringBuffer();
// 保存该文件原有的内容
for (int j = 1; (temp = br.readLine()) != null; j++) {
buf = buf.append(temp);
// System.getProperty("line.separator")
// 行与行之间的分隔符 相当于“\n”
buf = buf.append(System.getProperty("line.separator"));
}
buf.append(filein);
fos = new FileOutputStream(file);
pw = new PrintWriter(fos);
pw.write(buf.toString().toCharArray());
pw.flush();
flag = true;
} catch (IOException e1) {
// TODO 自动生成 catch 块
throw e1;
} finally {
if (pw != null) {
pw.close();
}
if (fos != null) {
fos.close();
}
if (br != null) {
br.close();
}
if (isr != null) {
isr.close();
}
if (fis != null) {
fis.close();
}
}
return flag;
}
/**
* * Attempts to read a line of text from the input stream. Since a *
* telnet input stream always ends lines in CR/LF pairs, this method *
* returns all characters in the stream until a CR/LF pair or the *
* end-of-stream is reached. If no more bytes are available in the *
* stream, <code>null</code> is returned. * * @return A string
* representing the next line in the input stream. * @throws IOException If
* an I/O error occurs.
*/
public static String readLine(TelnetInputStream is) throws IOException {
int ch = is.read();
if (ch == -1)
return null;
StringBuffer buf = new StringBuffer(100);
buf.append((char) ch);
while (true) {
ch = is.read();
switch (ch) {
case 10:
return buf.toString();
// ch = is.read();
// switch (ch) {
//
// case '\n':
// return buf.toString();
// case '\0':
// buf.append('\r');
// break;
// case -1:
// throw new IOException("Unexpected end of " + "input");
// default:
// throw new IOException("Invalid char " + "after CR: "
// + ((char) ch));
//
// }
case -1:
return buf.toString();
default:
buf.append((char) ch);
}
}
}
}
分享到:
相关推荐
2. **匿名访问**:除了特定用户外,FTP服务器还支持匿名访问,允许任何人在无需登录的情况下下载公开文件,这对于发布公开资源非常有用。 3. **目录结构**:FTP服务器可以创建多级目录,组织和管理文件,便于用户按...
某些FTP软件提供了直接在服务器上解压缩文件的功能,如FileZilla的“快速解压”功能。这可以节省大量时间和带宽,避免将整个压缩文件下载到本地再解压然后再上传。用户只需选中服务器上的压缩文件,点击相应命令,...
在实际应用中,FTP服务器常用于共享文件、协同工作、网站更新等场景。为了保证服务的稳定性和安全性,定期更新服务器软件、监控日志以及合理设置权限至关重要。 总之,"FTPserver.exe"是一个便捷的工具,帮助...
本教程将详细介绍如何使用Java处理FTP上的文件,包括下载、解压、备份、读写CSV文件以及压缩文件等操作。 首先,要进行FTP操作,我们需要一个Java库,如Apache Commons Net。该库提供了一个方便的API来实现FTP...
个人FTP服务器允许用户在自己的计算机上创建一个服务,让其他人能够上传或下载文件,这对于共享文件、协同工作或备份数据非常方便。这个“个人FTP服务器(绿色版)”是一款特别为个人用户设计的软件,无需安装,只需...
FTP服务器还可以扩展支持ZIP文件的上传和下载。这需要使用到ZIP库,如zlib或minizip,来处理ZIP文件的压缩和解压。 10. 客户端实现: 虽然本主题主要关注服务器实现,但理解客户端的实现也很重要。客户端也需要...
FTPUtils.java文件很可能是用来封装FTP文件操作的工具类,包括连接FTP服务器、登录、上传、下载和断开连接等方法。在编写这样的工具类时,需要注意处理异常,确保文件传输的正确性和完整性。 CSV文件是一种常见的...
FTP服务器则是提供FTP服务的软件,允许用户从远程位置上传、下载文件。在本例中,"EXAMPLE67.rar"是一个包含FTP服务器编程实现源码的压缩文件,特别指出是用VC++.NET编写的,这意味着它使用了Microsoft的Visual C++ ...
它允许用户通过FTP客户端连接到FTP服务器,实现文件的上传、下载、查看、修改等操作。简易的FTP服务器通常指的是轻量级、易于配置和管理的FTP服务软件,这类服务器通常不需复杂的安装过程,只需解压即可运行。 在...
FTP服务器是一种网络服务器,主要用于文件的上传与下载,广泛应用于网站文件的维护、软件发布、文件传输等场合。在Linux环境下,FTP服务器的安装和配置是非常常见的操作。 描述中提到的“Andy01”很可能是服务器的...
综上所述,通过Java FTP客户端和7-Zip Java API,我们可以实现FTP服务器上的文件上传和下载,以及RAR文件的压缩和解压。这些功能对于处理远程文件系统和数据交换具有重要意义。在实际开发中,确保正确配置FTP连接...
本教程将介绍如何在Windows 7 64位系统上利用FTPServer和Apache Tomcat搭建一个FTP服务器,并实现通过HTTP访问资源。 首先,我们需要下载并安装FTPServer和Apache Tomcat。压缩包中包含了`apache-tomcat-7.0.70-...
要使用20CN Mini FTP服务器,首先你需要下载并解压提供的压缩包文件“FtpServer”。解压后,你会得到执行文件,双击运行即可启动FTP服务器。在首次运行时,可能需要配置一些基本设置,如服务器的端口号(默认为21)...
用户可以通过解压文件,按照其中的说明来搭建和测试FTP服务器,体验其功能和性能。如果文件包含配置文件,记得根据实际环境调整参数,如端口号、用户账户、权限设定等。 为了确保FTP服务器的安全,应遵循以下最佳...
Windows FTP服务器是基于Windows操作系统的一种文件传输协议(FTP)服务,允许用户通过网络在本地计算机与远程服务器之间上传、下载文件。在Windows环境下搭建FTP服务器,可以方便地进行数据共享和远程协作。其中,...
Python的`ftplib`库提供了FTP客户端的功能,允许我们登录FTP服务器、列出目录、上传和下载文件。在模拟FTP请求时,需要熟悉FTP的基本命令和工作模式,如主动和被动模式。 5. **Shell执行**: Shell是操作系统提供...
这款基于Visual C++实现的FTP服务器源码提供了一个基础平台,让用户能够创建自己的FTP服务,实现文件的上传、下载、删除以及目录管理等功能。下面将详细介绍这个项目涉及的核心知识点。 1. **Visual C++**: Visual ...
在这里,"迷你Ftp服务器..exe"可能是解压后的可执行文件,用于启动和设置FTP服务器。用户需要运行这个程序,按照向导或提供的选项进行安装。在配置过程中,用户应设定服务器的基本参数,如端口号(默认为21)、...
FTP(File Transfer Protocol)是互联网上广泛使用的文件传输协议,它允许用户从一台计算机上传或下载文件到另一台计算机,而Xlight FTP服务器作为该协议的实现,提供了强大的管理和控制功能。 首先,Xlight FTP...
Serv-U是一款专业的FTP服务器端管理软件,它为企业和个人用户提供了一套强大且易用的解决方案,用于管理和控制FTP服务器上的文件传输。FTP(File Transfer Protocol)是互联网上一种广泛使用的文件传输协议,允许...