Точность Java BufferedWriter для всего файла

Скажем, у меня есть:

double num = 893.148723
BufferedWriter bw = new BufferedWriter(new FileWriter(new File(filePath)));
bw.write(String.format("%.1f",num));

Это запишет в файл 893.1. Однако есть ли способ установить точность для всего файла? Я буду выводить массу чисел, и мне не придется кодировать часть String.format () каждый раз, когда я пишу число.

Кто-то должен отформатировать число, если вам нужна точность только до одной цифры. И у вас нет выбора, кроме как форматировать каждое отдельное число перед его записью.

K139 24.08.2018 19:51

А как насчет переопределения метода Double.toString ()?

user4513421 24.08.2018 19:53

Вы не можете. Это публичный выпускной класс Double

K139 24.08.2018 19:55
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Даже если такой встроенной опции нет, вы можете создать свой собственный класс, расширяющий BufferedWriter.

public class BufferedWriterWithFormat extends BufferedWriter {
    private String format;

    public BufferedWriterWithFormat(Writer w, String format) {
        super(w);
        this.format = format;
    }

    public void write(double d) throws IOException {
        write(String.format(format, d));
    }
} 

Другие вопросы по теме