Java 关于文件的缝合

Java 关于文件的缝合,java,file,Java,File,我有大量的文件,这些文件已作为查询的答案返回。我希望向用户显示聚合列表。早些时候,当文件很小时,我会单独读取它们并将结果聚合到第三个文件中,但现在即使读取也意味着几秒钟的延迟,这是用户无法忍受的。是否有任何方法可以缝合文件并将聚合结果呈现给用户 早些时候,我尝试了一个类似“catfile1fiile2>>file3”的命令,该命令似乎没有将file1和file2的内容集成到file3中,但当我这样做时,该命令不起作用 进程p=Runtime.getRuntime().exec(“cat file

我有大量的文件,这些文件已作为查询的答案返回。我希望向用户显示聚合列表。早些时候,当文件很小时,我会单独读取它们并将结果聚合到第三个文件中,但现在即使读取也意味着几秒钟的延迟,这是用户无法忍受的。是否有任何方法可以缝合文件并将聚合结果呈现给用户

早些时候,我尝试了一个类似“catfile1fiile2>>file3”的命令,该命令似乎没有将file1和file2的内容集成到file3中,但当我这样做时,该命令不起作用

进程p=Runtime.getRuntime().exec(“cat file1 fiile2>>file3”);
BufferedReader br=新的BufferedReader(新的InputStreamReader(p.getInputStream())

从您使用的shell脚本判断,您的“聚合”实际上只是连接文件

如果是这种情况,那么您只需执行以下操作:

  OutputStream os = ...

  byte[] buffer = new byte[8192];  // or maybe a bit bigger
  int nosRead;
  try (InputStream is = new FileInputStream("file1")) {
      while ((nosRead = is.read(buffer)) > 0) {
          os.write(buffer, 0, nosRead);
      }
  }
  try (InputStream is = new FileInputStream("fiile2")) {
      while ((nosRead = is.read(buffer)) > 0) {
          os.write(buffer, 0, nosRead);
      }
  }

无需使用外部命令来连接文件。直接进行“缝合”(如上所述)意味着您将立即开始向用户发送数据。假设这就是“缝合”的全部内容,则不必使用读卡器/写卡器,避免使用读卡器/写卡器会使这一过程更快。

您需要给出一些实现细节。聚合文件只是单个文件的串联吗?或者是否有一些处理(如删除重复项等)。我不建议使用
Runtime.exec()
Yes聚合文件只是单个文件的串联。。。。