| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Чтение чисел из файла |
| Автор: oguretzz 25.9.2006, 16:44 |
| Допустим программа должна работать с файлом-библиотекой, такого типа: double double string. Т.е. например: 0.66 0.87 Cs-137 0.79 0.57 Cs-134 ......и т.д. Вопрос такое: как без анализа строки просто считать данные из такого файла? Дело в том, я новичок в Java, а в C++ подобные вещи делал очень просто через оператор ">>". Таким образом не анализируя строку (это уже описано в операторной ф-ции ">>") просто считывал значения нужного типа. Есть подозрение что аналогичным образом можно действовать и в Java, но я пока не нашел подходящего способа. Прошу подсказать как это правильно делать в Java с наименьшими затратами. |
| Автор: LSD 25.9.2006, 16:53 | ||
|
| Автор: powerOn 25.9.2006, 17:01 | ||||||
Допустим есть у нас такой txt файл:
Вот код программы нашей:
Вот результат её выполнения:
Добавлено @ 17:02 Оперэдыли!!! |
| Автор: LSD 25.9.2006, 22:57 | ||
Маленькое дополнение, я в своем примере не написал, и тут тоже не указанно, но потоки надо закрывать за собой.
|
| Автор: ma_lover 25.8.2007, 14:37 |
| powerOn, добрый день. Поддерживает ли Ваш вариант программы с использованием метода Scanner чтение арифметических операций? Когда я ввёл в текстовом файле знаки арифметических операций, то стектрейс вывел следующее: java.util.InputMismatchException at java.util.Scanner.throwFor(Scanner.java:819) at java.util.Scanner.next(Scanner.java:1431) at java.util.Scanner.nextInt(Scanner.java:2040) at java.util.Scanner.nextInt(Scanner.java:2000) at NewClass.main(NewClass.java:13) Заранее спасибо. |
| Автор: ma_lover 26.8.2007, 08:48 |
| нужно счиать сами знаки для начала..а потом провести вычисления по этим операциям, но для этого я хочу написать свой алгоритм. Не могли бы вы дать небольшой пример с методом next , чтобы было понятнее. Спасибо. |
| Автор: LSD 26.8.2007, 08:56 | ||||
Вот слегка модифицированный пример powerOn:
|
| Автор: Kisja 17.12.2007, 11:43 | ||||||
Сканер - это хорошая штука, только вот мне нужно прочитать данные из строк такого типа:
где 446.43 - число типа double. Для чтения пробую использовать код:
При чтении значения v = sc.nextDouble(); получаю ошибку java.util.InputMismatchException (не совпадает тип). Когда число записано как 446,43 (с запятой вместе точки), то сканер воспринимает его как double. Как быть? |
| Автор: Kangaroo 17.12.2007, 12:33 | ||
| Kisja, Scanner использует текущую локаль для определения формата чисел. Поэтому вам нужно задать локаль, в которой вещественные числа через точку. Попробуйте вот так:
|