sftp文件上传和读取

本文介绍使用Java实现SFTP服务器上的文件上传和读取操作,包括连接服务器、获取文件流、上传文件及读取目录下文件的基本步骤。

java中针对sftp服务器进行文件上传和读取的操作,代码如下:

public class SftpUploadAndReadFile{
	private ChannelSftp		sftpClient;
	private SFTPUtils		sftp				= new SFTPUtils();
	private final String	IP				= properties.getProperty("sftp.ip");		    // 服务器IP地址
	private final String	USERNAME			= properties.getProperty("sftp.username");	// 用户名
	private final String	USERPWD			= properties.getProperty("sftp.userpwd");	// 密码
	private final String	PORT				= properties.getProperty("sftp.port");		// 端口号
	
	public void uploadJob(){
		// 连接服务器
		sftpClient = sftp.connect(IP, Integer.parseInt(PORT), USERNAME, USERPWD);
		// 得到文件流
		FileInputStream fos = new FileInputStream(new File("E://output.xls"));
		HSSFWorkbook xls = new HSSFWorkbook(fos);
		// 输出流转为输入流,上传到ftp
		ByteArrayOutputStream os = new ByteArrayOutputStream();
		xls.write(os);
		byte[] b = os.toByteArray();
		ByteArrayInputStream in = new ByteArrayInputStream(b);
		sftpClient.put(in, "/demo/xls/output.xls");
		// 关闭连接
		sftp.disconnect(sftpClient);
	}

	public void readJob(){
		// 连接服务器
		sftpClient = sftp.connect(IP, Integer.parseInt(PORT), USERNAME, USERPWD);
		// 得到该目录下所有文件
		Vector<LsEntry> ftpFiles = sftpClient.ls("/demo/xls");
		InputStream retrieveFileStream = null;
		if (ftpFiles != null && ftpFiles.size() > 0){
			for (LsEntry ftpFile : ftpFiles){
				if (ftpFile.getFilename().indexOf(".xls") != -1){
					// 得到输入流
					retrieveFileStream = sftpClient.get("/demo/xls/" + ftpFile.getFilename());
					// 得到excel文件
					HSSFWorkbook xls = new HSSFWorkbook(retrieveFileStream );
				}
			}
		}
		// 另外sftpClient还有另外一些常用的方法基本跟linux下的命令差不多,如下
		// sftpClient.rm(/demo/xls/output.xls); 删除文件
		// sftpClient.cd(/demo/xls/); 打开某个目录如果目录不存在会抛异常
		// sftpClient.mkdir(/demo/xls/); 创建目录
		// 关闭连接
		sftp.disconnect(sftpClient);
	}
}

以上基本为我们常用的操作。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浮生(FS)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值