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编码是GB2312编码的扩展,主要在中国大陆广泛使用,涵盖了大部分简体中文字符。UTF-8则是一种国际通用的...
例如,当一个网站或程序需要兼容不同地区的用户时,可能需要将GBK编码的数据库或文本文件转换为UTF-8,以支持更多的字符集。反之,如果某个服务或设备只接受GBK编码,我们也需要进行相应的转换。 转换工具通常提供...
UTF-8是一种普遍使用的字符编码,能够支持世界上几乎所有的字符集,因此选择UTF-8编码确保了多语言内容的正确显示。 UEditor的核心功能包括: 1. **富文本编辑**:提供多种文本格式化选项,如字体、字号、颜色、...
在工作中经常读写文本文件,在读文件时,需要按开头的两个字节判断文件格式,然后按该格式... xx.xml文件看到的是[Unicode(UTF-8带签名)-代码页65001],就是UTF-8。 常用的格式有:ASCII,UTF-8,UTF-7,UTF-32,Uni
‘————————————————- ‘函数名称:ReadTextFile ‘作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件 ‘—————————————————- function ReadFromTextFile (FileUrl,CharSet) ...
软件介绍: 文本编码转换专家自动识别文件编码,有效转换成目标编码。真正的多线程管理效率更高,可控性更好。选择要编码文件所在路径,...支持的编码格式有:UTF-8 (有BOM)UTF-8(无BOM)UnicodeUnicode Big Endian
本编码转换专家能够将源编码转换为目标编码,支持以下编码格式:自动识别编码 UTF-8 (有BOM) UTF-8 (无BOM)ANSI(GB2312) Unicode Unicode Big Endian文本编码转换专家界面简洁易操作,能够自动识别文件编码...
注意在window下的读写内容需要指定编码,还需要在文件头指定#coding:utf-8 编码,避免出现编码问题。复制代码 代码如下:#coding:utf-8 import osimport os.path path=’.’oldStr=’.php’newStr=’.html’ for ...
yed 是一个画流程图的工具,不是开源软件,但是可以让你摆脱 Microsoft Office Visio ,...同时增强了 GEDCOM 以支持 ANSI, ASCII, UTF-8, 和 UTF-16 文件编码;完善 BPMN 2.0 规范实现;增加了流程图的一个新的布局算法。
ps:INI文件一般是Windows平台在使用,而Windows系统中的“记事本”程序比较坑:如果文本文件是UTF-8编码,在用记事本打开并保存后,会变成“UTF-8 Bom”格式。而 Windows中读写INI的相关API又不支持“UTF-8 Bom”...
XDF的PHP图形计数器,不适用复杂的数据库,而是采用txt文本数据库,使用更加绿色方便。...请另存为utf-8编码 counter.txt 请另存为utf-8形式,避免出错,如果出现脚本错误,例如 未定义变量,字段等,请检查符号半角等
现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并不理想。 类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符...
文本(文件+网页)编码检测java library, cpdetector_1.0.10. ...关于java中GBK与UTF-8编码的转换 及 利用 cpdetector开源框架检测编码的方法参看: https://blog.csdn.net/jhsword/article/details/93618735
PSPad Editor是一款免费的文件编辑器,能够以HEX编辑器打开,支持ANSI/OEM/ISO 8859-2/UTF-8/UTF-16LE编码格式。内置文字比结工具及程序代码浏览器,ASCII表格及颜色选择器,色彩格式转换器和颜色吸管工具,剪贴板...
字符编码是计算机表示和存储文本的方式,常见的有ASCII、GBK、UTF-8等。ASCII主要针对英文,GBK是中国大陆常用的扩展ASCII编码,包含了更多的中文字符,而UTF-8是一种广泛使用的Unicode编码,能容纳几乎世界上所有...
3. UTF-8编码:UTF-8是Unicode Transformation Format的8位形式,是目前互联网上最常用的字符编码。它可以表示Unicode字符集中所有的字符,包括ASCII字符。UTF-8的特点是其编码长度根据字符的不同而变化,从1到4个...
4. 对于资源文件(如FXML或Properties文件),确保它们的编码也是UTF-8,并在加载时指定编码: ```java FXMLLoader loader = new FXMLLoader(getClass().getResource("your.fxml"), ResourceBundle.getBundle(...
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...