在 Java 中,BufferedWriter
本身不提供格式化功能,但可以结合 String.format()
或 PrintWriter
进行格式化浮点数输出。
方式 1:使用 String.format()
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;public class BufferedWriterExample {public static void main(String[] args) {try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {double number = 123.456789;String formattedNumber = String.format("%.2f", number); // 保留两位小数writer.write(formattedNumber);} catch (IOException e) {e.printStackTrace();}}
}
方式 2:使用 PrintWriter
PrintWriter
支持直接格式化输出,并且可以包装 BufferedWriter
:
import java.io.*;public class PrintWriterExample {public static void main(String[] args) {try (PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("output.txt")))) {double number = 123.456789;writer.printf("%.2f%n", number); // 格式化输出,保留两位小数} catch (IOException e) {e.printStackTrace();}}
}
方式 3:使用 DecimalFormat
如果需要更高级的格式化:
import java.io.*;
import java.text.DecimalFormat;public class DecimalFormatExample {public static void main(String[] args) {try (BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"))) {double number = 123.456789;DecimalFormat df = new DecimalFormat("#.00"); // 保留两位小数writer.write(df.format(number));} catch (IOException e) {e.printStackTrace();}}
}
这三种方式都可以让 BufferedWriter
格式化输出浮点数,推荐使用 String.format()
或 PrintWriter.printf()
,它们更简洁直观。