Нет, поскольку информация о типе не содержится в текстовом потоке. Например, представьте, что токенизер встречает следующий токен:
47
Какой это тип? Это может быть String ("47"
), байт, int, long, float или double. Все эти типы могли создать этот токен, поэтому невозможно определить, каким был тип до того, как он был напечатан.
Когда вы анализируете файл, вы должны уже знать, какие типы ожидать, и выдавать ошибку, если она не соответствует.
Класс StringTokenizer возвращает только строки. Если вы ожидаете строки, вы можете просто сохранить их в переменной. Если вы ожидаете другого типа, вы должны разобрать его. Например, если вы читаете строку "47"
, то вам следует запустить ее через Integer.parseInt . Это либо возвратит int (например, 47
), либо выдаст исключение NumberFormatException, если оно не совпадает. Возможно, вы захотите перехватить NumberFormatException и выдать пользователю ошибку, поскольку текстовый файл не соответствует ожидаемому.