Background

之前做的一个数据导出功能,生成的csv文件,编码格式UTF-8,后来客户反应说文件打开中文乱码,一问用的是office excel,实验后最终发现UTF-8-BOM格式就没问题。这里记录下过程,代码中使用了Hutool工具类。

源码

 @Testpublic void Test1() {String filePath = "d://test/b.csv";FileOutputStream fos = null;CsvWriter writer = null;try {File file = new File(filePath);// 自动创建目录FileUtil.mkdir(file);// 先写入 UTF-8-BOM 编码头内容byte[] uft8bom = {(byte) 0xef, (byte) 0xbb, (byte) 0xbf};fos = new FileOutputStream(file, true);fos.write(uft8bom);// 然后写入文件内容writer = CsvUtil.getWriter(file, CharsetUtil.CHARSET_UTF_8, true);List<String> header = ListUtil.toList("数据时间", "温度(℃)", "压力(MPa)", "流量(t/h)");writer.write(header.toArray(new String[0]));} catch (Exception e) {e.printStackTrace();} finally {// 关闭流IoUtil.close(fos);IoUtil.close(writer);}}

最终生成的文件如下所示

Java设置生成文件编码格式带BOM【csv】【hutool】【java】相关推荐

  1. 红黑树在java中的作用_带你真正理解Java数据结构中的红黑树

    红黑树是平衡的二叉树,它不是一个完美的平衡二叉树,但是在动态插入过程中平衡二叉搜索树的代价相对较高,所以红黑树就此出现,下面就让爱站技术频道小编带你一起进入下文了解一下吧! 一.红黑树所处数据结构的位 ...

  2. 谈谈java面向对象之抽象,手把手带你搞定java面试之面向对象

    计算机语言晦涩难懂,打算利用通俗易懂的文字带领大家学习java基础.如果文中有什么错误的地方,欢迎大家在评论区指正,免得我误人子弟. Question:当面试JAVA开发岗位的时候,面试官最爱问的问题 ...

  3. java两个文件夹比较路径_比较Java中两个文件的路径

    java两个文件夹比较路径 Given the paths of the two files and we have two compare the paths of the files in Jav ...

  4. java 设置mime type_将Mimetype添加到MimetypesFileTypeMap - java

    我在将Mimetypes添加到MimetypesFileTypeMap时遇到问题.我已经尝试添加META-INF / mime.types文件,就像Documentation所说的那样.但Mimety ...

  5. linux java编译后生成文件_Linux终端编译并执行Java文件

    shell 中操作: 1.先创建java项目目录,名称project. mkdir project 2.在项目中创建src和bin目录,src下用于存放 ".java" 文件,bi ...

  6. 设置更改文件编码格式

    一.保存时更改编码 直接在文件保存时 选择编码格式 如下图,将文件编码更改为UTF-8: 二.用文本编辑器 保存时更改编码类型较少,为了更改其他编码格式,可以利用文本编辑器进行更改编码格式 比如Not ...

  7. linux生成文件自带时间,linux生成固定日期文件及删除一定日期前的文件

    一.按照一定日期格式命名文件 1.按照一定的格式输出日期: date +"%y%m%d" 格式说明: % : 印出 % %n : 下一行 %t : 跳格 %H : 小时(00-23 ...

  8. java 存储png文件_vue图片上传及java存储图片(亲测可用)

    1.前言 在使用elementui的upload组件时,我一直无法做到上传的图片和其他数据一起提交.单纯的上传文件,java的存储图片的方式也有局限性. 我知道的后端保存图片有两种方式:一种是直接存储 ...

  9. java 解锁关闭文件占用_程序员:Java文件锁定、解锁和其它NIO操作

    文件锁 java中i/o的文件锁定有两种:一种是独占锁,一种是共享锁. 共享锁既是共享读操作,但是只有一个可以进行写操作,共享锁防止其他正在运行的程序获取重复的独占锁,但是允许其他程序可以获取共享锁. ...

最新文章

  1. Tomcat的安装和环境变量配置
  2. 4.1.3 文件目录
  3. 织梦无子栏目时禁止调用同级栏目
  4. python 方法的实例_python调用自定义函数的实例操作
  5. ROS-手势控制小海龟移动
  6. IP地址子网的划分机制
  7. cesium米转换经纬度_Cesium 坐标系转换
  8. 3年flash游戏开发小结
  9. Python打码API(学习使用)
  10. Insyde uefi 隐藏设置_UEFI+GPT安装Windows10
  11. 尚学堂第十一章多线程习题答案
  12. python tkinter输入框_自制tkinter输入框Inputbox类
  13. 机器学习之集成学习(七)随机森林scikit-learn库
  14. LeetCode——线段树
  15. 使用Matlab求解矩阵方程的解
  16. PHP WebShell源码下载(1)
  17. 1.贝尔曼方程(Bellman equation)
  18. Arduino点亮LED灯带
  19. 操作系统-CPU与外设交互方式
  20. Smartphone 2.0 = Phone + Service

热门文章

  1. 数据结构线性表的逻辑结构(三)顺序表基本操作的实现
  2. 串、数组和广义表的比较
  3. 爬虫与反爬的常见套路
  4. 关于WEB端实现电子海图研究之思路
  5. 华为面试100题:java开发工程师(上)
  6. 从零基础认识KindEditor实现图片上传
  7. C# 删除chart控件网格:两种方法
  8. 外网做ip映射访问内网链接
  9. 怎样用计算机求方程组,【教程】用计算器解方程(牛顿法)
  10. 达梦数据库SQL日志分析工具Dmlog的使用