您可以使用RandomAccessFile访问远程FTP服务器上的文件吗?

时间:2019-06-14 05:11:28

标签: java ftp inputstream apache-commons-net randomaccessfile

我正在尝试使用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"));

1 个答案:

答案 0 :(得分:0)

如果要开始从某个偏移量读取远程文件,请使用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