sftp文件上传和读取

来源:互联网 发布:windows socket 知乎 编辑:程序博客网 时间:2024/04/30 03:45

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(inputStream);                }            }        }        // 另外sftpClient还有另外一些常用的方法基本跟linux下的命令差不多,如下        // sftpClient.rm(/demo/xls/output.xls); 删除文件        // sftpClient.cd(/demo/xls/); 打开某个目录如果目录不存在会抛异常        // sftpClient.mkdir(/demo/xls/); 创建目录        // 关闭连接        sftp.disconnect(sftpClient);    }}

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

1 0
原创粉丝点击