转换流-读文本文件思维图:
代码:
package cn.hiluna.demo;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* 转换流
* java.io.InputStreamReader 继承Reader
* 字符输入流,读取文本文件
*
* 字节流向字符的桥梁,将字节流转为字符流使用,并且支持修改编码表
*
* 读取方法:
* read() 读取1个字符,读取字符数组
*
* 技巧:OutputStreamWriter写了文件
* InputStreamReader读取文件
*
* OutputStreamWriter(OutputStream out)所有字节输出流
* InputStreamReader(InputStream in)接受所有字节输入流
* 可以传递的字节输入流:FileInputStream
* InputStreamReader(InputStream in,String charsetName)
*/
public class InputStreamReaderDemo {
public static void main(String[] args) throws IOException{
readGBK();
readUTF();
}
/**
* 转换流,InputStreamReader读取文本文件
* 读取UTF-8
*/
public static void readUTF()throws IOException{
//创建字节输入流
FileInputStream fileInputStream = new FileInputStream("e:\\utf.txt");
//创建一个转换流对象,构造方法中包装字节输入流
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"UTF-8");
char[] ch = new char[1024];
int len = inputStreamReader.read(ch);
System.out.println(new String(ch,0,len));
inputStreamReader.close();
}
/**
* 转换流,InputStreamReader读取文本文件
* 采用系统默认编码表,读取GBK
*/
public static void readGBK()throws IOException {
//创建字节输入流
FileInputStream fileInputStream = new FileInputStream("e:\\GBK.txt");
//创建一个转换流对象,构造方法中包装字节输入流
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"GBK");
char[] ch = new char[1024];
int len = inputStreamReader.read(ch);
System.out.println(new String(ch,0,len));
inputStreamReader.close();
}
}
转换流写文本文件思维图片:
代码:
package cn.hiluna.demo;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 转换流
* java.io.OutputStreamWriter 继承Writer类
* 就是一个字符输出流,写文本文件
* write(),字符,字符数组字符串
*
* 字符流通向字节流的桥梁,可以将字符流转换为字节流
*
* OutputStreamWriter 使用方式
*
* 构造方法:
* OutputStreamWriter(OutputSteam out)接受所有的字节输出流
* 但是:字节输出流:FileOutputStream
*
* OutputStreamWriter(OutputSteam out,String charsetName)
* String charsetName 传递编码表名字 GBK UTF-8
*
* OutputStreamWriter 有个子类 FileWriter但是FileWriter无法制定编码表
*/
public class OutputStreamWriter {
public static void main(String[] args)throws IOException {
writeGBK();
writeUFT();
}
/**
* 转换流对象OutputSteamWriter谢文本
* 采用UTF-8
*/
public static void writeUFT()throws IOException{
//创建字节输出流,绑定文件
FileOutputStream fileOutputStream = new FileOutputStream("e:\\utf.txt");
//创建转换流对象,构造方法包装字节输出流,并制定编码表为UFT-8
java.io.OutputStreamWriter outputStreamWriter = new java.io.OutputStreamWriter(fileOutputStream,"UTF-8");
outputStreamWriter.write("你好");
outputStreamWriter.close();
}
/**
* 使用转换流对象OutputSteamWriter写文本
* 文本采用GBK的形式写入
*/
public static void writeGBK()throws IOException {
//创建字节输出流,绑定数据文件
FileOutputStream fileOutputStream = new FileOutputStream("e:\\GBK.txt");
//创建转换流对象,构造方法中,绑定字节输出流,使用GBK码表
java.io.OutputStreamWriter outputStreamWriter = new java.io.OutputStreamWriter(fileOutputStream,"GBK");
//转换流写数据
outputStreamWriter.write("你好");
outputStreamWriter.close();
}
}