Java读写txt文件时防止中文乱码问题出现的方法介绍

 更新时间:2015年12月29日 16:36:31   作者:WOOSHN  
这篇文章主要介绍了Java读写txt文件时防止中文乱码问题出现的方法,同时需要注意系统默认的文本保存编码的设置,需要的朋友可以参考下

问题:在用Java程序进行读写含中文的txt文件时,经常会出现读出或写入的内容会出现乱码。原因其实很简单,就是系统的编码和程序的编码采用了不同的编码格式。通常,假如自己不修改的话,windows自身采用的编码格式是gbk(而gbk和gb2312基本上是一样的编码方式),而IDE中Encode不修改的话,默认是utf-8的编码,这就是为什么会出现乱码的原因。当在OS下手工创建并写入的txt文件(gbk),用程序直接去读(utf-8),就会乱码。为了避免可能的中文乱码问题,最好在文件写入和读出的时候显式指定编码格式。

1、写文件:

public static void writeFile(String fileName, String fileContent)  
{   
  try  
  {   
    File f = new File(fileName);   
    if (!f.exists())  
    {    
      f.createNewFile();   
    }   
    OutputStreamWriter write = new OutputStreamWriter(new FileOutputStream(f),"gbk");   
    BufferedWriter writer=new BufferedWriter(write);     
    writer.write(fileContent);   
    writer.close();   
  } catch (Exception e)  
  {   
    e.printStackTrace();   
  } 
} 

2、读文件:

public static String readFile(String fileName) 
{   
  String fileContent = "";   
  try  
  {    
    File f = new File(fileName);   
    if(f.isFile()&&f.exists()) 
    {    
      InputStreamReader read = new InputStreamReader(new FileInputStream(f),"gbk");    
      BufferedReader reader=new BufferedReader(read);    
      String line;    
      while ((line = reader.readLine()) != null)  
      {    
        fileContent += line;    
      }     
      read.close();   
    }   
  } catch (Exception e)  
  {     
    e.printStackTrace();   
  }   
  return fileContent;  
}  

相关文章

  • Java读取其下所有文件夹与文件路径的方法

    Java读取其下所有文件夹与文件路径的方法

    这篇文章主要为大家详细介绍了Java读取其下所有文件夹与文件路径的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • spring boot封装HttpClient的示例代码

    spring boot封装HttpClient的示例代码

    这篇文章主要介绍了spring boot封装HttpClient的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • SpringBoot+Redis实现数据字典的方法

    SpringBoot+Redis实现数据字典的方法

    这篇文章主要介绍了SpringBoot+Redis实现数据字典的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • SpringBoot中使用websocket出现404的解决方法

    SpringBoot中使用websocket出现404的解决方法

    在Springboot中使用websocket时,本地开发环境可以正常运行,但部署到服务器环境出现404问题,所以本文小编讲给大家详细介绍一下SpringBoot中使用websocket出现404的解决方法,需要的朋友可以参考下
    2023-09-09
  • 基于ZooKeeper实现队列源码

    基于ZooKeeper实现队列源码

    这篇文章主要介绍了基于ZooKeeper实现队列源码的相关内容,包括其实现原理和应用场景,以及对队列的简单介绍,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • 使用SpringCache操作Redis缓存数据的示例代码

    使用SpringCache操作Redis缓存数据的示例代码

    SpringCache是一个框架,实现了基于注解的缓存功能,只需要简单的加一个注解,就能实现缓存功能,本文给大家介绍了如何使用SpringCache操作Redis缓存数据,文中有相关的代码示例供大家参考,需要的朋友可以参考下
    2024-01-01
  • Mybatis使用typeHandler加密的实现

    Mybatis使用typeHandler加密的实现

    本文详细介绍了如何在Mybatis中使用typeHandler对特定字段进行加密处理,涵盖了从引入依赖、配置Mybatis,到实现typeHandler继承类和配置mapper层的详细步骤,为需要在项目中实现字段加密的开发者提供了参考和借鉴
    2024-09-09
  • Java设计模块系列之书店管理系统单机版(三)

    Java设计模块系列之书店管理系统单机版(三)

    这篇文章主要为大家详细介绍了Java单机版的书店管理系统设计模块和思想第三章,感兴趣的小伙伴们可以参考一下
    2016-08-08
  • 详解关于SpringBoot的外部化配置使用记录

    详解关于SpringBoot的外部化配置使用记录

    这篇文章主要介绍了详解关于SpringBoot的外部化配置使用记录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • MyBatis深入解读懒加载的实现

    MyBatis深入解读懒加载的实现

    顾名思义,懒加载就是因为偷懒了,懒得加载了,只有使用的时候才进行加载。其实,懒加载也加延迟加载,主要以应用与Mybatis的关联查询,按照设置的延迟规则,推迟对延迟对关联对象的select查询
    2022-04-04

最新评论