Java Сканер InputStream - PullRequest
       22

Java Сканер InputStream

0 голосов
/ 20 марта 2020

Я пытаюсь использовать сканер на 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: /

...