当前位置: 首页 > 面试题库 >

Java。从FTP读取文件,但不要完整下载

澹台建华
2023-03-14
问题内容

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

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

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


问题答案:

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

假设您使用的是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);


 类似资料:
  • 可能的重复: 如何从文件的内容 整个文本文件创建Java字符串 我正在尝试使用FileReader读取文件的内容。但是我不想逐行读文件。是否可以不循环地读取整个文件。我正在使用以下代码

  • 我有这个代码来下载一个文件。 这是服务器和密码的一部分。 简单的填充下载,但此行出错 它给了我错误,我希望你能理解我现在面临的问题 java.net.SocketExc0019:软件导致连接中止:套接字写入错误在java.net.SocketOutputStream.socketWrite0(本地方法)在java.net.SocketOutputStream.socket写入(SocketOutp

  • 在我的项目中,我需要使用以下库(OMPL)。我特别感兴趣的是一个成员函数printAsMatrix(std::ofstream&out),它将数据输出到终端或文件。这里的函数是: 但我需要这些输出的值在其原始形式,作为双倍。因此,我想通过库阅读它们,使用我自己实现的以下函数: 由于函数只接受std::ifstream数据,我得到了很多编译错误。 所以我做了一个临时的变通办法: > 创建了新的变量:

  • 我正在做一个项目,我需要从文件中读取文本,然后将特定部分存储为变量。 假设我有文本文件示例。txt 我想将第一行指定为: 等等 到目前为止,我有这个。 这段代码将打印文件的内容,这是朝着正确方向迈出的一步,但是如何读取每行内容呢? 因为我真的不想养成在内存中存储整个文件的习惯。 我知道你可以用 和类似的方法,但我只是想了解提取值的方法。

  • 问题内容: 我正在尝试从FTP服务器读取文件。该文件是一个文件。我想知道在套接字打开的情况下是否可以对此文件执行操作。我试图按照什么分两个问题,提到的阅读文件,而不写入磁盘和读取从FTP文件,而无需下载,但没有成功。 我知道如何提取下载文件上的数据/工作,但不确定是否可以即时执行。有没有一种方法可以连接到站点,在缓冲区中获取数据,还可以提取某些数据并退出? 尝试StringIO时出现错误: 我只需

  • 问题内容: 是否有一种隐藏的方法可以在 不 读取整行的 情况下 从文件或类似文件的对象读取令牌?我立即拥有的应用程序(其他人的问题,不是我的问题)正在将具有几个非常长的行的大型矩阵转置,本质上是对选择单个列元素的迭代器执行操作。这个想法不是在迭代过程中将整个文件存储在内存中。 这些行是用空格分隔的ASCII十进制数字。 对于Java的Scanner类,问题可能很简单,但我没有在Python标准库中