JAVA从入门到进阶(十二)——IO技术必杀技 转化流中的编码解码

当我们需要按照指定的编码表来读取或写入文件时,就需要用到转换流。
转化流的构造方法中可以按照自定义的编码表来进行编码和解码的工作。

import java.io.BufferedReader;
import java.io.BufferedWriter;
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;

public class IOchangedemo3 {
public static void main(String []args) throws IOException
{
	/*
	 * 需求 将文本文件按指定的编码表写入得到文件中
	 * method1()用自带的FileWriter 不能按照指定编码写入
	 * method2()用转换流按UTS-8码表写入
	 * method3()按照FileWriter读取utf-8 读取乱码 因为是按照默认的方式来读取到 乱码数据
	 **/
	method4();
}

private static void method3() throws IOException {
	
	FileReader fr=new FileReader("change2.txt");
	char [] ch= new char[1024];
	int len;
	while((len=fr.read(ch))!=-1)
			{
	System.out.println(new String(ch,0,len));
			}
	
}

private static void method4() throws IOException{
   BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("change2.txt"),"utf-8"));
   char [] ch= new char[1024];
	int len;
	while((len=br.read(ch))!=-1)
			{
	System.out.println(new String(ch,0,len));
			}
}

private static void method2() throws IOException {
	BufferedWriter Bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("change2.txt"),"utf-8"));
	Bw.write("你好");
	Bw.flush();
	Bw.close();
}

private static void method1() throws IOException {
	/*
	 * 其实FileWriter是OutputStreamWriter的子类
	 * 实现了 BufferedWriter Bw =new BufferedWriter(new FileOutputStream("change.txt");
	 * 按照默认的码表进行解析
	 */
	FileWriter  fw=new FileWriter("change.txt");
	fw.write("你好");
	fw.flush();
	fw.close();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值