FutureAnge1
@FutureAnge1
Педалирую потихоньку...

Ввод данных из текстового документа Java, можно ли как-то упростить?

Начинающий программист на Java. Столкнулся с ситуацией, когда нужно брать данные из текстового файла. В данном случае в файле находится целое число 10. При попытке чтения из файла мне вывело 48 и 47. Почему так происходит, до сих пор не разобрался. Заметил, что если эти числа конвертировать в char, то выводит то, что мне нужно. В итоге чтобы получить целое число 10, которое было в файле мне пришлось несколько раз конвертировать значение:
import java.io.*;

public class Test {

	public static void main(String[] args) throws IOException{
		FileInputStream reader = new FileInputStream("D:\\Eclipse\\workspace\\MyExperimentalProject\\files\\input.txt");
		int a = 0;
		String result = "";
		
		while (true) {
			a = reader.read();
			if (a == -1) {
				break;
			}
			result = result + (char)a;
		}
		System.out.println(result); //для сравнения результата
		Integer intresult = new Integer(result);
		intresult++;//убеждаюсь в том, что это всё-таки число
		System.out.println(intresult);
}
}

Я добился того, чего хотел, но мне кажется, что я из всех путей выбрал самый сложный. Опытные прогеры, подскажите пожалуйста, можно ли сделать этот процесс попроще, и если можно, то как?
  • Вопрос задан
  • 330 просмотров
Пригласить эксперта
Ответы на вопрос 2
AlexXYZ
@AlexXYZ
O Keep Clear O
У вас в файле не число 10, а строка "10". Вот пример преобразования: https://stackoverflow.com/questions/5585779/how-to...
Как парить строку на токены - отдельная задача. Можно вручную, можно регулярными выражениями.

48 и 47. Почему так происходит, до сих пор не разобрался

Гляньте таблицу ASCII кодов, найдите там коды для символов 1 и 0 и станет понятно.
Ответ написан
jamakasi666
@jamakasi666 Куратор тега Java
Просто IT'шник.
Немного подскажу:
1) Обязательно будьте уверены какая кодировка в файле и в какую читаете.
2) Строку легко разбить к примеру так для начала String[] arr = "неведомая строка с числом 100 и 72".split(" ");
3) Далее можно пойти в лоб,но это не совсем хорошо, вот так Integer.parseInt( String str ), такие же методы есть у других примитивных типов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы