有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

关于文件拼接的java

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

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

进程p=运行时。getRuntime()。执行官(“cat文件1 fiile2>;>;文件3”); BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream())


共 (1) 个答案

  1. # 1 楼答案

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

    无需使用外部命令来连接文件。直接进行“缝合”(如上所述)意味着您将立即开始向用户发送数据。假设这就是你“缝合”的全部内容,那么就不需要使用读写器,而避免使用读写器会让你的缝合速度加快一点