关于文件的拼接

时间:2014-02-17 09:57:42

标签: java file

我有大量文件作为查询答案返回。我希望聚合列表显示给用户。在文件较小的早期,我会单独阅读它们并将结果汇​​总到第三个文件中,但现在即使读取也意味着用户无法忍受的延迟几秒钟。有没有什么方法可以将文件拼接出来并将汇总结果呈现给用户?

之前我尝试过像“cat file1 fiile2>> file3”这样的命令,它无法将file1和file2的内容集成到file3中,但是当我这样做时这个命令不起作用

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

1 个答案:

答案 0 :(得分:0)

从您使用的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);
      }
  }

无需使用外部命令来连接文件。直接进行“拼接”(如上所述)意味着您将立即开始向用户发送数据。假设这就是你的“缝合”的全部内容,那么就没有必要使用读者/写作者,并且避免这样做会让它更快一点。