首页 新闻 搜索 专区 学院

java sftp 读取加密ZIP文件

0
悬赏园豆:60 [已解决问题] 解决于 2016-07-21 21:29

对方通过7za.exe工具生成ZIP加密文件放在服务器上,文件内容是一个.csv文件,我需要通过sftp连接到并读取csv文件的内容。

现在已经通过com.jcraft.jsch.ChannelSftp,成功连接到对方服务器,但不知道怎么去读取文件内容,不去下载,请帮忙看看。java.util.zip.ZipFile好像不行。

we212320的主页 we212320 | 初学一级 | 园豆:29
提问于:2016-06-06 18:23
< >
分享
最佳答案
0

如果你想读非压缩文件,你可以这样

InputStream stream = sftp.get("/some/file");
try {
    BufferedReader br = new BufferedReader(new InputStreamReader(stream));
    // read from br
} finally {
    stream.close();
}

 

考虑到你强调了是一个压缩文件,简单的说:不行。

因为一个压缩文件是一个整体,你必须

  1. 拿到它的所有内容,
  2. 然后执行解压
  3. 才能读取原始文件的内容

1,2可以不写文件,直接在内存中进行,你应该会用到zip的api,你可以试试zip4j

收获园豆:60
微服务专家 | 菜鸟二级 |园豆:272 | 2016-06-24 16:30

谢谢!看了一些博客,初步认定如果仅是压缩文件,那么可以直接读取到内存而不去下载,但如果这个压缩文件是带有密码的,那么则必须要下载之后,用密码去解压,才能去读取解压后的内容。

用的是zip4j。

we212320 | 园豆:29 (初学一级) | 2016-06-27 10:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册