我正在尝试使用 Apache Commons Net 库读取 FTP 远程服务器上的文件。
retrieveFileStream
返回 InputStream
并将其放入 BufferedReader
中。
但是,我想使用 RandomAccessFile
(使用 seek()
方法)。
我想将 Inputstream
作为 RandomAccessFile
获取。
可能吗?
FTPClient ftp = new FTPClient();
InputStream in = ftp.retrieveFileStream(remote_file_name);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
最佳答案
如果您想从某个偏移量开始读取远程文件,请使用 FTPClient.setRestartOffset
。 FTP 服务器需要支持 REST
命令(大多数都支持)。
ftp.setRestartOffset(offset);
InputStream in = ftp.retrieveFileStream(remote_file_name);
// Now you can read as many bytes as you need from 'in'
如果不想读完文件,而想复用该连接进行其他操作,则需要调用FTPClient.abort
.
(您无法将 InputStream
转换为 RandomAccessFile
,也无法对 FTP 服务器上的文件使用 RandomAccessFile
)
关于java - 您可以使用 RandomAccessFile 访问远程 FTP 服务器上的文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56591712/