爪哇.从 FTP 读取文件,但不要全部下载

2022-01-09 00:00:00 file stream ftp java

我需要从 FTP 读取 CSV 文件头.

I need to read CSV file header from FTP.

由于这些文件可能非常大,我不需要下载它们.

As these files can be very huge, I don't need to download them.

有没有办法从 FTP 读取 CSV 文件的第一行并中止连接?

Is there a way to read first line of CSV file from FTP and abort connection?

推荐答案

只读取第一行,忽略剩余部分并关闭流.智能 FTP 客户端在提供任何内容供读取之前不会在内存中缓冲 整个 流.

Just read only the first line, ignore the remnant and close the stream. A smart FTP client won't buffer the entire stream in memory before providing anything for read.

假设您使用的是 Apache Commons Net FTPClient:

BufferedReader reader = null;
String firstLine = null;

try {
    InputStream stream = ftpClient.retrieveFileStream(ftpFile.getName());
    reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
    firstLine = reader.readLine();
} finally {
    if (reader != null) try { reader.close(); } catch (IOException logOrIgnore) {}
}

doYourThingWith(firstLine);

相关文章