JavaIO读取_写入文件中文乱码问题解决Java认证考试

文章作者 100test 发表时间 2010:02:02 16:46:29
来源 100Test.Com百考试题网


  读取: BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(File file), "UTF-8")).

  写入: BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(File file), "UTF-8")).

  不包BufferedWriter和BufferedReader一层,也可以达到解决中文乱码问题的目的.

  参考下面J2SE6中关于 InputStreamReader 和 OutputStreamWriter 的解析

  *************************************************************

  public class OutputStreamWriterextends Writer

  OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。

  每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。

  为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如:

  Writer out

  = new BufferedWriter(new OutputStreamWriter(System.out)).

  代理对 是一个字符,它由两个 char 值序列表示:高 代理项的范围为 \uD800 到 \uDBFF,后跟范围为 \uDC00 到 \uDFFF 的低 代理项。

  错误代理元素 指的是后面不跟低代理项的高代理项,或前面没有高代理项的低代理项。

  此类总是使用字符集的默认替代序列 替代错误代理元素和不可映射的字符序列。如果需要更多地控制编码过程,则应该使用 CharsetEncoder 类。

  *******************************************************************

  public class InputStreamReaderextends Reader

  InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。

  每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

  为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

  BufferedReader in

  = new BufferedReader(new InputStreamReader(System.in)).



相关文章


JDOM解析XML实例Java认证考试
Springjar包的相关性浅析Java认证考试
Java将gif格式图片转为jpg格式Java认证考试
利用JAVA生成JPG缩略图Java认证考试
JavaIO读取_写入文件中文乱码问题解决Java认证考试
用Java实现HTTP断点续传功能(3)Java认证考试
用Java实现HTTP断点续传功能(2)Java认证考试
用Java实现HTTP断点续传功能(1)Java认证考试
java中的流机制(二)Java认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛