`

读UTF-8 编码的文本

 
阅读更多

 

FileReader FileWriter 和InputStreamReader OutputStreamWriter 读UTF-8 编码的文本

 

FileReader 和FileWriter 分别是InputStreamReader 和OutputStreamWriter 的直接子类,InputStreamReader 和OutputStreamWriter是字符流通字节流的桥梁,可以显示的指定字符编码,转码是发生在字节流和字符流的临界处的;

而FileReader 和FileWriter 是处理字符文件的便捷类,使用的是默认的字符编码。

 

读UTF-8 字符编码的文件

1 、使用FileReader 类

public static String readUsingFileReader(String fileName,

String encoding) throws IOException{

         StringBuffer sb = new StringBuffer();

         BufferedReader in = new BufferedReader(

                   new FileReader(fileName));

         String s ;

         while ((s=in.readLine())!= null ){

              s = new String((s+ "\n" ).getBytes(),encoding);

              sb.append(s);

         }

         in.close();

         return sb.toString();

     }

 

2 、使用InputStreamReader 类

public static String readUsingInputStreamReader(String fileName,String encoding)

throws IOException{

         StringBuffer sb = new StringBuffer();

         BufferedReader in = new BufferedReader(

                   new InputStreamReader( new FileInputStream(fileName),encoding));

         String s ;

         while ((s=in.readLine())!= null ){

              sb.append(s);

              sb.append( "\n" );

         }

         in.close();

         return sb.toString();

     }

  

使用 FileReader 类我们需要通过 new String((s+ "\n" ).getBytes(),encoding) 进行转码,但还是会出现一些汉字无法解析出来。使用 InputStreamReader 类时我们指定好编码方式能很好的解析。

 

写文件和读文件差不多。

1 、使用FileWriter 类

public static void writeUsingFileWriter(String fileName,String text,

              String encoding) throws IOException{

         PrintWriter out = new PrintWriter(

                   new FileWriter(fileName));

         text = new String(text.getBytes(encoding));

         out.print(text);

         out.close();

     }

 

2 、使用OutputStreamWriter 类

     

public static void writeUsingOutputStreamWriter(String

fileName,String text,String encoding) throws IOException{

         PrintWriter out = new PrintWriter(

new OutputStreamWriter(

new FileOutputStream(fileName),encoding));

         out.print(text);

         out.close();

     }

  

 

 

FileOutputStream /FileInputStream 用于写入诸如图像数据之类的原始字节的流。要写入字符流,考虑使用 FileWriter/FileReader

分享到:
评论

相关推荐

    批量文件转码工具(支持 GBK,UTF-8 转换)

    在这个场景中,我们讨论的是一个专门用于批量转换的工具,它支持GBK和UTF-8这两种常见的字符编码格式。 GBK编码是GB2312编码的扩展,主要在中国大陆广泛使用,涵盖了大部分简体中文字符。UTF-8则是一种国际通用的...

    gbk与utf8互转工具

    例如,当一个网站或程序需要兼容不同地区的用户时,可能需要将GBK编码的数据库或文本文件转换为UTF-8,以支持更多的字符集。反之,如果某个服务或设备只接受GBK编码,我们也需要进行相应的转换。 转换工具通常提供...

    ueditor1_4_3_2-utf8-jsp.zip

    UTF-8是一种普遍使用的字符编码,能够支持世界上几乎所有的字符集,因此选择UTF-8编码确保了多语言内容的正确显示。 UEditor的核心功能包括: 1. **富文本编辑**:提供多种文本格式化选项,如字体、字号、颜色、...

    C#读写指定编码格式的文本文件

    在工作中经常读写文本文件,在读文件时,需要按开头的两个字节判断文件格式,然后按该格式... xx.xml文件看到的是[Unicode(UTF-8带签名)-代码页65001],就是UTF-8。  常用的格式有:ASCII,UTF-8,UTF-7,UTF-32,Uni

    用ASP读取/写入UTF-8编码格式的文件

    ‘————————————————- ‘函数名称:ReadTextFile ‘作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件 ‘—————————————————- function ReadFromTextFile (FileUrl,CharSet) ...

    文本编码转换专家v2.7注册版.rar

    软件介绍: 文本编码转换专家自动识别文件编码,有效转换成目标编码。真正的多线程管理效率更高,可控性更好。选择要编码文件所在路径,...支持的编码格式有:UTF-8 (有BOM)UTF-8(无BOM)UnicodeUnicode Big Endian

    文本编码转换专家V2.6(wfEncoding)注册版.rar

    本编码转换专家能够将源编码转换为目标编码,支持以下编码格式:自动识别编码 UTF-8 (有BOM) UTF-8 (无BOM)ANSI(GB2312) Unicode Unicode Big Endian文本编码转换专家界面简洁易操作,能够自动识别文件编码...

    python实现文件名批量替换和内容替换

    注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题。复制代码 代码如下:#coding:utf-8 import osimport os.path path=’.’oldStr=’.php’newStr=’.html’ for ...

    免费流程图软件yEd Graph Editor v3.9.1

    yed 是一个画流程图的工具,不是开源软件,但是可以让你摆脱 Microsoft Office Visio ,...同时增强了 GEDCOM 以支持 ANSI, ASCII, UTF-8, 和 UTF-16 文件编码;完善 BPMN 2.0 规范实现;增加了流程图的一个新的布局算法。

    Ini for Java

    ps:INI文件一般是Windows平台在使用,而Windows系统中的“记事本”程序比较坑:如果文本文件是UTF-8编码,在用记事本打开并保存后,会变成“UTF-8 Bom”格式。而 Windows中读写INI的相关API又不支持“UTF-8 Bom”...

    XDF的PHP图形计数器.zip

    XDF的PHP图形计数器,不适用复杂的数据库,而是采用txt文本数据库,使用更加绿色方便。...请另存为utf-8编码 counter.txt 请另存为utf-8形式,避免出错,如果出现脚本错误,例如 未定义变量,字段等,请检查符号半角等

    PHP 编程请选择正确的文本编辑软件

    现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并不理想。 类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符...

    java文本编码检测jar包_cpdetector_1.0.10_binary.zip

    文本(文件+网页)编码检测java library, cpdetector_1.0.10. ...关于java中GBK与UTF-8编码的转换 及 利用 cpdetector开源框架检测编码的方法参看: https://blog.csdn.net/jhsword/article/details/93618735

    PSPad Editor编辑器v4.6中文绿色版.rar

    PSPad Editor是一款免费的文件编辑器,能够以HEX编辑器打开,支持ANSI/OEM/ISO 8859-2/UTF-8/UTF-16LE编码格式。内置文字比结工具及程序代码浏览器,ASCII表格及颜色选择器,色彩格式转换器和颜色吸管工具,剪贴板...

    批量转换网页文件编码工具

    字符编码是计算机表示和存储文本的方式,常见的有ASCII、GBK、UTF-8等。ASCII主要针对英文,GBK是中国大陆常用的扩展ASCII编码,包含了更多的中文字符,而UTF-8是一种广泛使用的Unicode编码,能容纳几乎世界上所有...

    Set Character Encoding(Charset)

    3. UTF-8编码:UTF-8是Unicode Transformation Format的8位形式,是目前互联网上最常用的字符编码。它可以表示Unicode字符集中所有的字符,包括ASCII字符。UTF-8的特点是其编码长度根据字符的不同而变化,从1到4个...

    JavaFX+Jfoenix 学习笔记(十)--系统托盘及解决中文乱码问题源码

    4. 对于资源文件(如FXML或Properties文件),确保它们的编码也是UTF-8,并在加载时指定编码: ```java FXMLLoader loader = new FXMLLoader(getClass().getResource("your.fxml"), ResourceBundle.getBundle(...

    将ANSI转换为HTML5的php库.zip

     public function __construct(Theme $theme = null, $inlineStyles = true, $charset = 'UTF-8')  {  $this->theme = null === $theme ? new Theme() : $theme;  $this->inlineStyles ...

    日文乱码转换工具

    1. **字符编码**:字符编码是计算机存储和显示文本的方式,如ASCII、Unicode(包含UTF-8、UTF-16等变体)和各种国家/地区特定编码,如Shift-JIS、EUC-JP等。对于日文,UTF-8是最通用的编码,因为它能表示所有Unicode...

Global site tag (gtag.js) - Google Analytics