Java中 PrintWriter 的 format 怎么实现类似于 printf 的格式化输出
PrintWriter是字符打印流,其format方法与printf底层均调用java.util.Formatter,支持相同的格式化语法。使用时需手动调用flush()或开启自动刷新以确保数据输出,推荐使用%n实现跨平台换行符,避免操作系统差异。相比于System.out,PrintWriter可输出到文件等目标,更灵活。
PrintWriter 的 format 方法和 printf 本质上是同一套机制,底层都调用了 ja va.util.Formatter,所以你能用 System.out.printf 写出来的格式化串,在 PrintWriter 上照样能用。关键是要记住:写完之后得手动 flush,或者构造时开启自动刷新,否则内容可能还在缓冲区里打转。另外,换行符推荐用 %n 而不是 \n,这样在不同操作系统下都能正常工作。

PrintWriter 的 format 方法和 printf 本质是同一个机制,它底层调用的是 ja va.util.Formatter,支持和 System.out.printf 完全相同的格式化语法。
format 方法的基本用法
PrintWriter 提供了两个重载的 format 方法:
format(String format, Object... args):使用默认的本地化设置(通常是系统 locale)format(Locale l, String format, Object... args):显式指定 locale,避免因地区差异导致小数点、千分位等格式出错
举个例子:
PrintWriter pw = new PrintWriter(System.out);
pw.format("姓名:%s,年龄:%d,身高:%.2f 米%n", "张三", 25, 1.785);
pw.flush(); // 别忘了刷新缓冲区
常用格式化转换符
和 C 语言的 printf 类似,Ja va 支持标准的转换符,关键几个如下:
%s:任意对象,调用toString()%d:十进制整数(int、long 等)%f:浮点数,默认保留6位小数%.2f:保留2位小数(精度控制)%n:平台无关的换行符(推荐替代\n)%tY-%tm-%td:日期格式(%t后接时间字段标识,%<表示复用前一个参数)
注意 flush 和自动刷新
PrintWriter 默认不自动刷新,调用 format 后内容还在缓冲区中:
- 手动调用
pw.flush()强制输出 - 构造时传入
true开启自动刷新:new PrintWriter(System.out, true),这样每次format或println都会立即输出 - 注意:自动刷新只对
println、printf、format和write(带换行的重载)生效,普通write(String)不触发
与 String.format 的区别
String.format(...) 返回格式化后的字符串,不输出;而 PrintWriter.format(...) 直接写入流。两者语法一致,可以互换验证:
- 先用
String.format调试格式串是否正确 - 再把相同格式串和参数传给
pw.format - 比如:
String s = String.format("%.2f", 3.14159); // → "3.14"
WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,
Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。
REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。
Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许
Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator
Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。













