有 Java 编程相关的问题?

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

java是一种独立的语言。用空行复制到另一个txt文件中。txt文件

我一直在网上搜索,但没有结果

我的问题是,我有一个日志文本文件,其中包含如下文本

2014-03-04 08:28:45 1WKkiT-0008Qr-M9 Message received from xx (1.2.3.41) T="q"
2014-03-04 08:28:45 1WKkiT-0008Qr-M9 Message was delivered to xxxH=xxx[11.11.11.1] C="250 Queued (0.000 seconds)"
2014-03-04 08:28:45 1WKkiT-0008Qr-M9 Completed

2014-03-04 08:28:45 1WKkiT-0008Qr-M9 DKIM: d=x=relaxed/relaxed a=rsa-sha1 t=1393921721 [verification succeeded]
2014-03-04 08:29:12 1WKkit-0005cD-UZ Message received from x x T="x"
2014-03-04 08:29:12 1WKkit-0005cD-UZ Message was delivered to xxxH=x xxx C="250 Queued (0.000 seconds)"
2014-03-04 08:29:12 1WKkit-0005cD-UZ Completed

实际文件要大得多

我想要的是逐块读取整个文件(空行作为分隔符),然后将每个块写入另一个预先制作的文本文件

我目前正在使用BufferedReaderBufferedWriter,但我不同意使用这些

任何帮助都将不胜感激,谢谢


共 (1) 个答案

  1. # 1 楼答案

    我想这就是你想要的:

    BufferedReader reader = new BufferedReader(new FileReader("text.txt"));
        String line = null;
        ArrayList<String> block = new ArrayList<String>();
        String tmp="";
        while ((line = reader.readLine()) != null) {
            if(line.equals(""))
            {
                block.add(tmp);
                tmp="";
            }
            else
            {
                tmp = tmp + line;
            }
        }
        block.add(tmp);
                reader.close();
        System.out.println(block.size());
        System.out.println(block.toString());
    

    只需运行for循环,将其复制到另一个文本文件

    替换

    tmp = tmp + line";
    

    tmp = tmp + line+"\n";
    

    如果希望字符串的格式与源文件相同