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

问题描述 投票:0回答:1

我正在尝试使用 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"));
java ftp inputstream apache-commons-net randomaccessfile
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.