FileOutputStream连接远程sftp
时间: 2023-10-25 11:57:05 浏览: 84
您可以使用JSch库连接到远程SFTP服务器,并FileOutputStream将文件传输到该服务器。以下是一个示例代码:
```java
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session;
import java.io.File;
import java.io.FileOutputStream;
public class SftpFileUploader {
public static void main(String[] args) {
String host = "sftp.example.com";
int port = 22;
String username = "your-username";
String password = "your-password";
String remotePath = "/path/to/remote/directory/";
String localFilePath = "path/to/local/file.txt";
String remoteFileName = "file.txt";
JSch jsch = new JSch();
try {
Session session = jsch.getSession(username, host, port);
session.setPassword(password);
session.setConfig("StrictHostKeyChecking", "no");
session.connect();
ChannelSftp channelSftp = (ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
channelSftp.cd(remotePath);
File localFile = new File(localFilePath);
FileOutputStream outputStream = new FileOutputStream(localFile);
channelSftp.get(remoteFileName, outputStream);
outputStream.close();
channelSftp.disconnect();
session.disconnect();
System.out.println("File downloaded successfully!");
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
请确保您已经将JSch库添加到您的项目依赖中。您可以根据需要修改主机名、端口、用户名、密码、远程路径、本地文件路径和远程文件名。
这段代码将从远程SFTP服务器下载名为"file.txt"的文件,并将其保存到本地文件路径中。成功下载后,控制台将打印"File downloaded successfully!"的消息。
请注意,这里使用的是FileOutputStream将文件下载到本地,如果您需要将文件上传到远程SFTP服务器,则需要使用ChannelSftp的`put()`方法。
阅读全文