Вывод double в файл в java

313
28 февраля 2017, 16:06

Мне надо выводить числа типа double в файл, а также читать их оттуда. Однако при попытке чтения выведенных чисел у меня возникает ошибка:

Exception in thread "main" java.util.InputMismatchException

в этом фрагменте:

public HiddenNeuron(int cnt, double[] oxses) {
    this.w = new double[cnt];
    this.x = new double[cnt];
    for (int i = 0; i < cnt; i++) {
        this.x[i] = oxses[i];
        this.w[i] = whi.nextDouble();
    }
}

в строке this.w[i] = oxses[i];

В файл все числа выводятся через точку, т.е. 1.2345, но если заменить её на запятую (1,2345), программа работает без ошибок. Запись в файл происходит при помощи PrintWriter(FileWriter):

PrintWriter pi = new PrintWriter(new FileWriter(wf));
ph.write(String.valueOf(hilayer[i].w[j]));

Пытался через String.valueOf() и через double + "" переводить в String, но всегда выводит через точку.

Answer 1

Вам нужно установить настройки локали для сканнера:

Scanner sc = new Scanner(new File("file.txt"));
sc.useLocale(Locale.US);

http://www.cyberforum.ru/java-j2se/thread783127.html#post4115840

READ ALSO
Не проверяется цифровая подпись

Не проверяется цифровая подпись

Подписываю текстовое сообщение на закрытом RSA ключе, потом перевожу эту подпись в Base64, потом обратно и проверяю её на открытом ключеПочему...

203
Проблема в собранном JavaFX артефакте

Проблема в собранном JavaFX артефакте

Доброго времени суток Столкнулся с проблемой когда собрал JavaFX артефактВ появившемся окне в поле TextArea не выводится текст вопросов при том...

262