• 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);
  • 相关阅读:
    频率计数器简介
    电力时钟厂家简介
    linux mail命令详解
    /etc/postfix下 main.cf 配置文件详解
    linux tar
    Linux find命令详解
    Python with
    Python 多进程概述
    python paramiko模块简介
    python 全局变量和局部变量
  • 原文地址:https://www.cnblogs.com/wuxun1997/p/10103302.html
Copyright © 2020-2023  润新知