java基础专栏—IO转换(3)

流对象的转换

FileWriter,FileReader,都是默认使用GBK编码表(安装了中文的系统的都是默认GBK)。要对编码表进行操做,解决网页的乱码问题就须要流转换java

OutputStreamWriter

字符流通向字节流的桥梁,这个流自己能够操做编码表函数

|--Writer
	|--OutputStreamWriter
		|--FileWriter
	自身是一个字符输出流,用来写文本文件
public OutputStreamWriter(OutputStream out)    

public OutputStreamWriter(OutputStream out, String CharsetName)

转换过程编码

//建立流对象绑定文件对象
FileOutpurStream fos = new FileOutputStream("xxxxx");
//建立转换流,经过构造函数转换流,指定编码格式
OutputStreamWriter osw = new OutputStreamWriter(fos,"GBK");
//经过转换流对象来写入文件
osw.write("xxxx");
//只用关闭转换流就可关闭输出流了
osw.close();

InputStreamReader

字节流通向字符流的桥梁,这个流自己能够操做编码表code

|--Reader
	|--InputStreamReader
		|--FileReader
	自身是一个字符输入流,用来读文本文件
public InputStreamReader(InputStream in)    

public InputStreamReader(InputStream in, String CharsetName)

转换过程对象

FileInputStream fis = new FileInputStream();

InputStreamReader isr = new InputStreamReader(fis,"gbk");

char[] ch = new char[1024];

int len = 0;

while((len = isr.read()) != -1){
    System.out.println(new String(ch, 0, len));
}

isr.close()
相关文章
相关标签/搜索