zoukankan      html  css  js  c++  java
  • 写txt文件在AIX5.3系统中乱码

    /**
         * 写文本内容到txt文件
         * @param fileContent  文件内容
         */
        public  void writeResultFile(String fileContent) {    
            //文件存放目录
            String fileDir=ConstDefine.FILE_DIR;
            //文件名
            String fileName =new  SimpleDateFormat("yyyyMMddHHmmss").format(new Date())+".txt";
            File resultFile = new File(fileDir,fileName);
            BufferedReader bufferedReader = null; 
            BufferedWriter bufferedWriter = null; 
            try { 
                 bufferedReader = new BufferedReader(new StringReader(fileContent)); 
                 bufferedWriter = new BufferedWriter(new FileWriter(resultFile)); 
                 char buf[] = new char[1024];         //字符缓冲区 
                 int len; 
                 while ((len = bufferedReader.read(buf)) != -1) { 
                     bufferedWriter.write(buf, 0, len); 
                 } 
                
            } catch (IOException e) { 
                
                 e.printStackTrace(); 
            } finally {
                 try {
                    bufferedWriter.flush();
                    bufferedReader.close(); 
                    bufferedWriter.close(); 
                } catch (IOException e) {
                    e.printStackTrace();
                } 
            }
        }

      

      上面这个方法就是把文本内容写到txt文件中,在Window系统和Red Hat Linux 系统中都没有问题,但是在AIX5.3系统中写到txt文件后就会变成乱码。

      修改后的方法如下:(写文件的时候加上编码)

    /**
         * 写文本内容到txt文件
         * @param fileContent  文件内容
         */
        public void writeResultFile(String fileContent) {
            //文件存放目录
            String fileDir=ConstDefine.FILE_DIR;
            //文件名
            String fileName =new  SimpleDateFormat("yyyyMMddHHmmsszzz").format(new Date())+".txt";
            File resultFile = new File(fileDir,fileName);
            BufferedWriter bufferedWriter = null; 
            try { 
                 bufferedWriter = new BufferedWriter(new OutputStreamWriter (new FileOutputStream(resultFile),"GBK")); 
                 bufferedWriter.write(fileContent,0,fileContent.length());
            } catch (IOException e) { 
                 e.printStackTrace(); 
            } finally {
                 try {
                    bufferedWriter.flush();
                    bufferedWriter.close(); 
                } catch (IOException e) {
                    e.printStackTrace();
                } 
            }
        }

      

      修改后的方法在window、Linux和AIX系统中都没有发生乱码。

      如果读取文件的时候遇到乱码,也可以加上编码:

    BufferedReader br = new BufferedReader(new InputStreamReader (new FileInputStream(new File(filePath)),"GBK")); 

      

      

  • 相关阅读:
    疲劳的一天
    Singleton模式与对象池的假设....
    没有杀死我的 (创伤心理学简介)
    Python深入03 对象的属性
    协议森林14 逆袭 (CIDR与NAT)
    Python深入05 装饰器
    协议森林06 瑞士军刀 (ICMP协议)
    数据可视化的秘密
    协议森林
    协议森林13 9527 (DNS协议)
  • 原文地址:https://www.cnblogs.com/luxh/p/2684594.html
Copyright © 2011-2022 走看看