我需要将一个文本文件从一台Linux服务器复制到另一台Linux服务器。如何使用Java实现?
我需要将一个文本文件从一台Linux服务器复制到另一台Linux服务器。如何使用Java实现?
如果您能够使用apache commons-io,那么最简单的方法是: FileUtils
类提供了方便的方法来复制文件:
FileUtils.copyFileToDirectory(srcFile, targetDirectory);
由于您提到了文本文件,我假设您的应用程序可以访问两个文件系统。
FTPClient client = new FTPClient();
client.connect(host);
if(FTPReply.isPositiveCompletion(client.getReplyCode())) {
if(client.login(username, password)) {
FileInputStream fis = new FileInputStream(localFilepath);
try {
if(client.storeFile(remoteFilename, fis)) {
System.out.println("File uploaded!");
}
}
finally {
fis.close();
}
}
}
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public void tranferFile() {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(servername, port);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
File sourceFile = new File("file which you want to send");
InputStream inputStream = new FileInputStream(sourceFile);
boolean done = ftpClient.storeFile("filename which receiver get", inputStream);
inputStream.close();
if (done) {
LOGGER.info("file is uploaded successfully..............");
}
} catch (IOException e) {
LOGGER.error("Exception occured while ftp : "+e);
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException e) {
LOGGER.error("Exception occured while ftp logout/disconnect : "+e);
}
}
}
如果您想要一种简单的方式,并且您的服务器支持PHP,我推荐使用快速传输脚本。
只需将脚本上传到要复制文件的目录中,输入要复制的文件的URL,然后单击传输。它在不到2分钟的时间内跨越了一个1.4GB的文件,为我节省了大量时间和带宽。