java.io.OutputStreamWriter; 继承Writer类
字符输出流
可以指定输出文件的编码表
package cn.bufanli.iodemo;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
/**
* @author BuShuangLi
* @date 2018/12/26
* 转换流
* java.io.OutputStreamWriter; 继承Writer类
* 字符输出流,写文本文件
* 方法:
* writer() 字符,字符数组,字符串
* 字符流通向字节流的桥梁,可以将字符流转换成字节流
* OutputStreamWriter使用方式:
* 构造方法:
* OutputStreamWriter(OutputString out) out 接受所有的字节输出流
* OutputStreamWriter(OutputString out,String charsetName) out 接受所有的字节输出流
* charsetName 编码表的名字 不区分大小写 gbk 、 utf-8
*/
public class OutputStreamWrierDemo {
public static void main(String[] args) throws IOException {
//gbk
writerBGK();
//utf
writerUTF();
}
private static void writerUTF() throws IOException {
//创建文件输出流对象
FileOutputStream fileOutputStream = new FileOutputStream("F:\\utf.java");
//默认为系统默认编码表 win UTF-8 中文一个字符三个字节
OutputStreamWriter gbk = new OutputStreamWriter(fileOutputStream, "utf-8");
gbk.write("哈哈");
gbk.close();
}
private static void writerBGK() throws IOException {
//创建文件输出流对象
FileOutputStream fileOutputStream = new FileOutputStream("F:\\gbk.java");
//默认为系统默认编码表 win GBK 中文一个字符两个字节
OutputStreamWriter gbk = new OutputStreamWriter(fileOutputStream, "GBK");
gbk.write("哈哈");
gbk.close();
}
}
java.io.InputStreamReader;继承 Reader类
字符输入流
可以指定输入文件的编码表
package cn.bufanli.iodemo;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author BuShuangLi
* @date 2018/12/26
* 转换流
* java.io.InputStreamReader; 继承 Reader类
* 字符输入流,读取文本文件
* 字节流通向字符流的桥梁,将字节流转换成字符流
* 读取方法:
* read();读取一个字符
* ..................
* 构造方法:
* InputStreamReader(InputStream inputStream,String charSetName)
*
*/
public class InputStreamReaderDemo {
public static void main(String[] args) throws IOException {
//new InputStreamReader()
// readerGBK();
readerUTF();
}
/**
* 转换流读取gbk文本文件
*/
private static void readerGBK() throws IOException {
//创建字节输入流
FileInputStream fileInputStream = new FileInputStream("f:\\gbk.java");
//创建流转换对象
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"gbk");
int len = 0;
char[] chars = new char[12];
while((len=inputStreamReader.read(chars))!=-1){
System.out.println(new String(chars,0,len));
}
inputStreamReader.close();
}
/**
* 转换流读取utf-8文本文件
*/
private static void readerUTF() throws IOException {
//创建字节输入流
FileInputStream fileInputStream = new FileInputStream("f:\\utf.java");
//创建流转换对象
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"utf-8");
int len = 0;
char[] chars = new char[12];
while((len=inputStreamReader.read(chars))!=-1){
System.out.println(new String(chars,0,len));
}
inputStreamReader.close();
}
}