我有一个文件,格式如下,记录是由换行符分隔的,但有些记录内部也有换行符,就像下面这样。我需要单独获取每个记录并进行处理。该文件可能有几兆字节大小。
<?aaaaa>
<?bbbb
bb>
<?cccccc>
我有这段代码:
FileInputStream fs = new FileInputStream(FILE_PATH_NAME);
Scanner scanner = new Scanner(fs);
scanner.useDelimiter(Pattern.compile("<\\?"));
if (scanner.hasNext()) {
String line = scanner.next();
System.out.println(line);
}
scanner.close();
但是我得到的结果已经去掉了开头的<\?:
aaaaa>
bbbb
bb>
cccccc>
我知道 Scanner 会消耗与定界符模式匹配的任何输入。我能想到的唯一办法就是手动将定界符模式添加回每个记录中。
有没有一种方法可以不删除定界符模式?
"<?aaa>\n<?bbb><?ccc>\n<?ddd>"
在 bbb 和 ccc 之间? - Bohemian?
即可。 - Bohemian