zoukankan      html  css  js  c++  java
  • java指定文件编码格式

      在创建文件并打印字符串时,如果不指定编码,默认是按系统的编码格式来。比如我们的linux环境中编码如下:

    CMREAD-SV43 /home/wlf> locale
    LANG=en_US.UTF-8
    LC_CTYPE="zh_CN.GBK"
    LC_NUMERIC="zh_CN.GBK"
    LC_TIME="zh_CN.GBK"
    LC_COLLATE="zh_CN.GBK"
    LC_MONETARY="zh_CN.GBK"
    LC_MESSAGES="zh_CN.GBK"
    LC_PAPER="zh_CN.GBK"
    LC_NAME="zh_CN.GBK"
    LC_ADDRESS="zh_CN.GBK"
    LC_TELEPHONE="zh_CN.GBK"
    LC_MEASUREMENT="zh_CN.GBK"
    LC_IDENTIFICATION="zh_CN.GBK"
    LC_ALL=zh_CN.GBK

      中文编码看LC_ALL,这里我们环境配置的是GBK,那么如下代码就是使用GBK来的,因为这里并未设置默认编码格式:

        protected void writerLog(String content)
        {
            // 记录创建时间为当前时间
            createDate = new Date();
            try
            {
                // 生成文件对象,如果文件不存在,要创建新文件。
                File file = new File(this.fileName);
                
                if (!file.exists() && file.createNewFile())
                {
                    // 上面方法有返回值,findBugs会报警,所以采用空实现的形式解决
                    ;
                }
                
                // 获得当前文件大小
                this.fileSize = file.length();
                file = null;
                
                // 打开输出
                this.logWriter = new PrintWriter(new FileWriter(this.fileName, true), true);
            }
            catch (IOException e)
            {
                e.printStackTrace();
                this.logWriter = null;
            }
            
            this.logWriter.print(content);
            this.logWriter.flush();
        }

      如何指定具体的编码格式呢?我们把这一行改下:

    this.logWriter = new PrintWriter(new FileWriter(this.fileName, true), true);

      使用OutputStreamWriter对象来指定UTF-8编码:

        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(this.fileName, true), "UTF-8");
        this.logWriter = new PrintWriter(osw, true);
  • 相关阅读:
    Fedora/CentOS/RHEL删除旧的内核
    Linux下使Shell命令脱离终端运行
    保持tmux窗口名更改后不变
    Centos7 修改ssh 默认端口号
    验证码生成代码
    Json帮助类代码
    Http请求代码
    cookies读写代码
    缓存读写代码
    数据读写 CommonCurd
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/10103302.html
Copyright © 2011-2022 走看看