Java转换流2
2015-08-09 17:31
441 查看
代码:
myeclipse项目,有包名。
package outIn2.review; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.UnsupportedEncodingException; /* * CharacterCodingTransform-字符编码转换 * I/O练习,关流的事就免了。 */ public class CharacterCodingTransform { public static void main(String[] args) { try { // fileReaderDecoding1(); // fileReaderDecoding2(); // specialDecoding1(); encoding(); } catch (Exception e) { e.printStackTrace(); } } /* * encoding-编码 * 注意: * 读数据的时候可以不关流, * 也会有数据显示。 * 但是写入数据的时候要关流, * 才可以把数据写入磁盘, * 缓冲流只要刷新流就可以了, * 建议是流就关闭。 */ public static void encoding() throws Exception { /* * 采用FileWriter以默认方式编码, * --如果流没有关闭,那么数据就会保存在流中。 * FileOutputStream+默认编码表 */ FileWriter fw = new FileWriter("d:/ex/a/fileWriter01.txt"); fw.write("每天进步一点点。。。"); fw.close(); FileOutputStream fout = new FileOutputStream("d:/ex/a/fileWriter02.txt"); fout.write(123456789);// 只能写一个数 /* * 采用转换流以默认方式编码 * OutputStreamWriter + FileOutputStream + 默认编码表 */ OutputStreamWriter outW = new OutputStreamWriter(new FileOutputStream( "d:/ex/a/outputStreamWriter03.txt")); outW.write("天天一道水题。。"); outW.close(); /* * 采用转换流以指定编码方式编码 * OutputStreamWriter + FileOutputStream +指定编码表 */ OutputStreamWriter outW2 = new OutputStreamWriter(new FileOutputStream( "d:/ex/a/utf_8_outputStreamWriter04.txt"),"UTF-8"); outW2.write("这个应该没有问题吧。。"); outW2.close(); } /* * 通过使用转换流,指定字符集, * 就可以解决乱码了。 * specialDecoding1-指定解码 */ public static void specialDecoding1() throws IOException { /* * 使用这个方法可以解决乱码, * 但是UTF-8格式会在文件头部产生一个字符, * 这个是无法解决的。 */ InputStreamReader inR = new InputStreamReader(new FileInputStream( "d:/ex/a/myUTF8.txt"), "UTF-8"); char[] cbuf = new char[50]; int num = inR.read(cbuf); while (num != -1) { System.out.println(new String(cbuf, 0, num)); num = inR.read(cbuf); } } /* * decoding-解码 */ public static void fileReaderDecoding1() throws IOException { /* * myeclipse默认设置为GBK * myUTF8.txt以UTF-8格式保存 * 这种方式会出现乱码, * 因为系统设置的编码表与文件保存的编码表不同, * 所以输出的中文时乱码。 */ FileReader fr = new FileReader("d:/ex/a/myUTF8.txt"); char[] cbuf = new char[50]; int num = fr.read(cbuf); while (num != -1) { System.out.println(new String(cbuf, 0, num)); num = fr.read(cbuf); } } /* * decoding-解码 */ public static void fileReaderDecoding2() throws IOException { /* * myeclipse默认设置为GBK * myGBk.txt以GBK格式保存 * 这种方式不会出现乱码。 */ FileReader fr = new FileReader("d:/ex/a/myGBK.txt"); char[] cbuf = new char[50]; int num = fr.read(cbuf); while (num != -1) { System.out.println(new String(cbuf, 0, num)); num = fr.read(cbuf); } } }
myeclipse项目,有包名。
相关文章推荐
- java 实现线程同步的方式有哪些
- Spring MVC 直接返还HTML视图
- Java反射机制之方法反射的基本操作
- java笔记--关于线程同步(5种同步方式)
- java synchronized静态同步方法与非静态同步方法,同步语句块
- java单链表常用操作
- java单链表常用操作
- 类的锁
- Myeclipse8.6 快速搭建ssh(JPA)开发环境 并自动生成dao ,model
- Java之旅(3)——EJB(初始)
- java.lang包下Number的简介
- java编写一个分页类
- java中的异常
- java list用法
- struts2.2 Annotation 注解配置Action
- Java的Package和Classpath
- java.util.Date和java.sql.Date的区别及应用
- 【JavaMail开发总结】配置文件形式--发送邮件程序
- 智渔课堂官方免费教程二(拓展):关于解决新建文件没有扩展名的问题
- Java:JSON和Map相互转换