You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用FileOutputStream和PrintWriter按指定格式写入Artical数据到文件

Java商品类CSV格式化写入实现方案

针对你需要将Artical实例按指定分号分隔格式逐行写入baza.csv的需求,直接在实体类中统一封装格式化逻辑即可,后续控制台展示、文件写入都可以复用这套规则,避免重复编码。

实现步骤

  • 在Artical类中新增专门的CSV行格式化方法,统一处理字段格式转换和拼接:
public String toCsvRow() {
    // 处理价格:固定保留两位小数,匹配示例中的价格格式
    String formattedPrice = String.format("%.2f", this.priceOfArtical);
    // 名称格式适配:你给出的示例中"LG Monitor"输出为"Monitor LG",如果需要调换空格分隔的名称前后段顺序就保留以下逻辑,不需要的话直接将outputName赋值为this.nameOfArtical即可
    String[] nameParts = this.nameOfArtical.split(" ", 2);
    String outputName = nameParts.length == 2 ? nameParts[1] + " " + nameParts[0] : this.nameOfArtical;
    // 按要求用分号拼接字段,末尾补分号和换行符,保证每行对应一条商品数据
    return String.join("; ", this.codeOfArtical, outputName, formattedPrice) + ";\n";
}
  • 在WriteArticalInFileClass的do()方法实现中,直接调用传入的Artical实例的toCsvRow()方法,拿到格式化完成的整行字符串写入目标文件即可。如果需要批量写入多条商品数据,每个实例依次调用该方法,将返回值追加到文件输出流中即可,会自动按行拆分,不会出现格式混乱。
  • ShowArticalClass的do()方法如果需要输出相同格式的商品信息,也可以直接调用toCsvRow()方法打印内容,后续如果要调整输出格式,只需要修改这一处方法的逻辑,不用分别改动展示和文件写入的代码。

提示:如果业务上不需要调整商品名的词语顺序,直接删除名称拆分的代码段,将outputName替换为this.nameOfArtical,输出的商品名就会和你初始化时传入的参数完全一致。

内容的提问来源于stack exchange,提问作者pegasus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:36:17