Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: [java] вызов scanner.nextFloat() приводит к ошибке  (Прочитано 1863 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн kiloom

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Код выполняется под виндой, но выдает ошибку под Ubuntu.

import java.io.*;
import java.util.Scanner;

public class FileReadTest {

public static void main(String[] args){
File dataFile = new File(args[0]);
try{
Scanner input = new Scanner(dataFile);
float x = input.nextFloat();
System.out.println("The first float is " + x);
float y = input.nextFloat();
System.out.println("The next float is " + y);
}catch(FileNotFoundException e1){
System.out.println("File not found.");
}
}
}

Содержимое файлика 1.txt
123.0 454.0
Результаты выполнения:

Ubuntu Netbook Edition 10.04:
family@family-laptop:~$ java FileReadTest 1.txt
Exception in thread "main" java.util.InputMismatchException
        at java.util.Scanner.throwFor(Scanner.java:840)
        at java.util.Scanner.next(Scanner.java:1461)
        at java.util.Scanner.nextFloat(Scanner.java:2319)
        at FileReadTest.main(FileReadTest.java:10)

Windows XP:
E:\MyDocs\>java FileReadTest 1.txt
The first float is 123.0
The next float is 454.0

Версия Java:
family@family-laptop:~$ java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Server VM (build 16.3-b01, mixed mode)

Может, кто нибудь знает, как заставить код работать под Ubuntu?

Оффлайн Sova777

  • Участник
  • *
  • Сообщений: 208
    • Просмотр профиля
    • Несколько слов о NetBeans C/C++ Pack'е
Re: [java] вызов scanner.nextFloat() приводит к ошибке
« Ответ #1 : 18 Октября 2010, 22:39:13 »
Если заменить
123.0 454.0
на
123,0 454,0
то программа работает?
Пользователь OpenSolaris 2008.11, Ubuntu 8.10, Windows XP. Mac OS X не нравится, стараюсь не использовать.

Оффлайн Mam(O)n

  • Старожил
  • *
  • Сообщений: 5855
    • Просмотр профиля
Re: [java] вызов scanner.nextFloat() приводит к ошибке
« Ответ #2 : 19 Октября 2010, 01:08:35 »
input.useLocale(Locale.US);

Оффлайн kiloom

  • Автор темы
  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: [java] вызов scanner.nextFloat() приводит к ошибке
« Ответ #3 : 19 Октября 2010, 11:24:03 »
спасибо всем за ответы, проблема решена.

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.