当前位置: 首页 > 知识库问答 >
问题:

Vertx附加到文件

臧欣怿
2023-03-14

如何将数据附加到文件的末尾(或开头)?我试着用

list.forEach(str -> {
    vertx.fileSystem().writeFile(path,
        Buffer.buffer(str), result -> {
          if (result.succeeded()) {
            LOGGER.debug(str + " appended");
          } else {
            LOGGER.error(str + " not appended");
          }
        });
  });

但它只写最后一项。

共有1个答案

徐正雅
2023-03-14

每次连续调用writeFile都会覆盖数据,这就是为什么在文件中只能看到最后一项的原因。要将每个数据项附加到文件中,请使用OpenOptions#setAppend(true)打开文件:

vertx.fileSystem().open(path, new OpenOptions().setAppend(true), ar -> {
  if (ar.succeeded()) {
    AsyncFile ws = ar.result();
    list.forEach(str -> {
      Buffer chunk = Buffer.buffer(str);
      ws.write(chunk);
    });
  } else {
    System.err.println("Could not open file");
  }
});
 类似资料:
  • 我有一个程序,它总是将相同的文件附加到GMAIL(撰写 它所做的是: 在Android 6.0之前,它一直工作良好。现在,我在尝试使用它时收到以下错误: 无法附加空文件 Astro文件共享给我同样的错误(可能是旧版本)。 但是,我安装了ES File Explorer,当我执行相同的例程并选择该文件时,我会收到一个对话框,其中显示: 将文件作为 普通Android方式(适用于彩信、Gmail等)

  • 问题内容: 因此,我可以像这样从本地文件中读取: 而且我可以写入本地文件 但是,如何追加文件?有内置方法吗? 问题答案: 此答案在Go1中有效:

  • 问题内容: 我正在写某种生成加密日志文件的记录器。不幸的是,密码学不是我的强项。现在,我可以向文件写入几条消息,然后关闭文件。然后我可以打开它,附加一些消息,再次关闭,解密后,我在文件中间看到填充字节。有什么方法可以处理加密文件,而不必每次我想添加一些消息时都对其解密? 编辑 :更多细节。当前实现使用CipherOutputStream。据我了解,没有办法 寻求 使用它。如果我将控制输出数据大小可

  • 问题内容: 在Linux中将文本附加到文件的最简单方法是什么? 我看了这个问题,但是可接受的答案使用了一个附加程序(),我相信应该有一个更简单的方法或类似方法。 问题答案: cat >> filename This is text, perhaps pasted in from some other source. Or else entered at the keyboard, doesn’t

  • 问题内容: 我有一个json文件,employees.json,我想将数据附加到此对象。该文件如下所示: 我想补充一下: 名字:迈克 lastName:Rut 时间:上午10:00 电子邮件:rut@bah.com 电话:800-888-8888 图片:images / mike.jpg 到employee.json。 我将如何完成? 问题答案:

  • 我正在尝试使用Vertx上传一个文件,该请求是一个包含PDF的POST请求,我的处理程序如下所示(我从github中的一个示例中获取了代码): 根据上面的评论,我不能只尝试这样的事情(它实际上显示了一个错误): 我一直在检查MessageCodec,但我不清楚如何将其应用于这种情况。 注意:此escenario必须使用eventbus。