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
下にデータのブロックを含む処理が必要です。たとえば、3 番目 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"));
...
これにより、 3 番目 a;b
の空の入力が ByteArrayInputStream に委任されます。
の最初の行がfileScanner.next()
空行かどうかを確認してから、nextLine() ステートメントとそれに続く continue ステートメントを実行してもよろしいですか?