Java,从一个文件复制到另一个文件,逐行间隔

Rah*_*acy 5 java buffer copy file line

我有一个包含 120 行的文件,我想将它们逐一移动到另一个文件,间隔例如 1 秒,并能够在 10 秒后在新文件中找到 10 行。

但就我而言,我在新文件中使用 0 行执行程序,直到最后,然后找到数据。

String sourceFileName = "D:\\oldfile.txt";
String destinationFileName = "D:\\newfile.txt";

if(evt.getSource() == btnProcess)
{
    BufferedReader br = null;
    PrintWriter pw = null; 
    try {
         br = new BufferedReader(new FileReader(sourceFileName));
         pw =  new PrintWriter(new FileWriter(destinationFileName));
         String line;
         while ((line = br.readLine()) != null) {
                pw.println(line);
                Thread.sleep(1000);
         }
         br.close();
         pw.close();
    }catch (Exception e) {
         e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

其次,为了在同一时刻以不同的时间间隔处理 4 个文件,我需要使用线程?感谢您的帮助。

Rav*_*avi 2

当您写入文本文件时,PrintWriter不会立即将其写入磁盘。相反,它将数据保存在内存的缓冲区中。

当您需要将数据存储在磁盘上时,您可以手动刷新缓冲区。println()通话后flush()如下。

     while ((line = br.readLine()) != null) {
            pw.println(line);
            pw.flush();
            Thread.sleep(1000);
     }
Run Code Online (Sandbox Code Playgroud)