您可以使用 RandomAccessFile 访问远程 FTP 服务器上的文件吗?
Can you access files on the remote FTP server with RandomAccessFile?
我正在尝试使用 Apache Commons Net 库读取 FTP 远程服务器上的文件。
retrieveFileStream
returns 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
,也无法将 RandomAccessFile
用于 FTP 服务器上的文件)
我正在尝试使用 Apache Commons Net 库读取 FTP 远程服务器上的文件。
retrieveFileStream
returns 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
,也无法将 RandomAccessFile
用于 FTP 服务器上的文件)