Я пытаюсь использовать сканер на inputStream. Мой файл выглядит так:
Eventlabel -0.0630 2013.0 38.4 25.1
0.01 -0.0590 2009.0 23.2 21.6
0.02 -0.0564 2006.4 19.7 21.2
0.03 -0.0540 2004.0 23.6 24.3
Его разделены табуляцией. Я попробовал следующий код:
try (Scanner scanner = new Scanner(inputStream, StandardCharsets.UTF_8.name())) {
String fileString = scanner.useDelimiter("\\A").next();
} catch (IOException e) {
throw new IllegalArgumentException("Error while reading multipart request", e);
}
Вывод выглядит нормально, но для метки события иногда появляется новая строка. Если я извлекаю fileString в String [] с разделением ("\ t"), значение метки Event выглядит как "Метка события". Но «пробел» между «Метка события» не является пробелом (я проверял, думаю, это новый \ A). Поэтому, возможно, что-то не так с моим шаблоном ("\ A").
Я не могу использовать сканер с вкладкой Разделитель, потому что иногда перед таблицами появляется дополнительная информация. У кого-то есть еще одна блестящая идея, как я могу использовать сканер и получить всю информацию о моей таблице + специальную информацию?
РЕДАКТИРОВАТЬ: Если я использую матрицу
1 2205 2936 15122 9193
0.15 -0.0186 1968.6 19.2 27.0
0.16 -0.0154 1965.4 18.9 28.4
0.17 -0.0127 1962.7 16.8 26.5
Первое значение (1 ) удаляется, а не в моей fileString: /