我需要在 Unix 和 Windows 上处理以下文件:
a;b
c;d;e;f;g
c;d;e;f;g
c;d;e;f;g
a;b
c;d;e;f;g
c;d;e;f;g
c;d;e;f;g
a;b
a;b
c;d;e;f;g
c;d;e;f;g
c;d;e;f;g
我需要处理a;b
包含下面的数据块。例如,不应处理第三个。 a;b
目前,我正在使用 Java 扫描器在文件中使用以下正则表达式来分隔此类文本:
Scanner fileScanner = new Scanner(file);
try{
fileScanner.useDelimiter(Pattern.compile("^$", Pattern.MULTILINE));
while(fileScanner.hasNext()){
String line;
while ((line = fileScanner.nextLine()).isEmpty());
InputStream is = new ByteArrayInputStream(fileScanner.next().getBytes("UTF-8"));
...
这仍然会将第三个 a;b
空输入委托给 ByteArrayInputStream。
我可以检查第一行fileScanner.next()
是否为空行,然后执行 nextLine() 语句和下面的 continue 语句吗?