为了账号安全,请及时绑定邮箱和手机立即绑定

文件拆分并写入多个文件

文件拆分并写入多个文件

慕妹3242003 2021-10-06 10:44:42
你能帮我解决这个问题吗?考虑以下,它在单个文本文件中说chines.txtline no:1(AP9000)2<CAT-DOG FILE>3<DATA>4<DATE=19NOV14>5GOOG2402l 19NOV14 05:00 2.06APL2402h  19NOV14 05:00 6.07IBM2401w  19NOV14 05:00 586.08<END>Line no: 9 (NNNN)Line number:10    11(AP9000)12<CAT-DOG FILE>13<DATA>14<DATE=19NOV14>15GOOG2402l 19NOV14 05:00 2.016APL2402h  19NOV14 05:00 6.017IBM2401w  19NOV14 05:00 586.018<END>19(NNNN)如何将上面的一个分成两个文件。意思是从 (AP900) 到 (NNNN) 从第 1 行到第 9 行转到one.txt和从 (AP900) 到 (NNNN) 从第 11 行到第 19 行转到two.txt。例如,行号从 1 到 19 给出。如何将 Java 8 或 Apache Camel 拆分为两个文件?读取此文件的 Java 8 代码try {       List<String> stringList =Files.lines(Paths.get("chines.txt"))                     .collect(Collectors.toList());                stringList.forEach(x -> System.out.println(x));    }catch (Exception e){        System.out.println("Could not found file");        }
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

你的描述不清楚,有些要求看起来很奇怪(你为什么要创建像one.txt, 而不是1.txt)这样的文件?但这只是一个小小的手指练习。也许这会有所帮助?


// Iterator<String> fileNames = Arrays.asList("one.txt", "two.txt", "three.txt", "four.txt", "five.txt", "six.txt", "seven.txt").iterator();

int i = 1;

Pattern start = Pattern.compile("\\(AP9000\\)");

Pattern end = Pattern.compile("\\(NNNN\\)");

boolean reading = false;

FileOutputStream fos = null;

Iterator<String> lines = Files.lines(Paths.get("c:/d/test.txt")).iterator();

while (lines.hasNext() /* && fileNames.hasNext() */) {

    String line = lines.next();

    Matcher startMatcher = start.matcher(line);

    if (startMatcher.find()) {

        reading = true;

        fos = new FileOutputStream(String.valueOf(i++) + ".txt"/*fileNames.next()*/);

    }

    if (reading) {

        fos.write(line.getBytes(StandardCharsets.UTF_8));

        fos.write('\n');

    }

    Matcher endMatcher = end.matcher(line);

    if (endMatcher.find()) {

        if (fos != null) {

            fos.close();

        }

        reading = false;

    }

}

if (fos != null) {

    fos.close();

}


查看完整回答
反对 回复 2021-10-06
  • 1 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信