Apache Vfs Ftp 协议上传文件遇到的坑
程序员文章站
2022-05-09 23:44:26
...
本地文件监听和修改写完后,尝试监听和修改 Ftp 上的文件,于是将文件路径修改如下
@Test
public void testCreate() throws IOException {
FileSystemManager manager = VFS.getManager();
FileObject fileObject = manager.resolveFile("ftp://admin:aaa@qq.com:2121/dict/ekoz.txt");
IOUtils.write("ekoz", fileObject.getContent().getOutputStream());
IOUtils.closeQuietly(fileObject);
}
报错是
由于能拿到 fileObject 的内容,所以思考的方向一直都是文件无读取权限
FileObject fileObject = manager.resolveFile(stopwordsFilepath);
String content = IOUtils.toString(fileObject.getContent().getInputStream(), Charsets.UTF_8);
直到偶然调用了 FtpFileSystemConfigBuilder.getInstance(); 才发现缺少 commons-net 包,引入后就能写入正常数据。
<!-- https://mvnrepository.com/artifact/commons-net/commons-net -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.6</version>
</dependency>
所需版本依赖详见:http://commons.apache.org/proper/commons-vfs/download.html
注意:IOUtils.closeQuietly(fileObject); 如果不调用,则数据无法写入。