package com.shuhuadream.inputstream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
//转换流
/**
* 输入字节流的转换流
* InputStreamReader
*
* 输出字节流的转换流
* OutputStreamWriter
*
*
* 转换流的作用:
* 1.如果目前所获取到的一个字节流需要转换为字符流使用,这时就可以使用转换流。
* 2.使用转换流可以指定编码表进行读写文件
* */
public class Demo01 {
public static void main(String[] args) throws IOException {
//isr();
//osw();
//writeTest();
readTest();
}
//使用输入字节流的转换流指定码表进行读取文件数据
public static void readTest() throws IOException{
File file = new File("d:\\demo\\a.txt");
FileInputStream fis = new FileInputStream(file);
//创建字节流的转换流并且指定码表进行读取
InputStreamReader isr = new InputStreamReader(fis);
char[] buf = new char[1024];
int length = 0;
while((length = isr.read(buf))!=-1){
System.out.println(new String(buf,0,length));
}
}
//使用输出字节流的转换流指定码表写出数据
public static void writeTest() throws IOException{
File file = new File("d:\\demo\\a.txt");
//建立数据的输出通道
FileOutputStream fos = new FileOutputStream(file);
//把输出字节流转换为字符流并且指定码表
OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
osw.write("新中国好");
osw.close();
}
public static void osw(){
File file = new File("d:\\demo\\a.txt");
FileOutputStream fos;
try {
fos = new FileOutputStream(file);
//把输出字节流转换为输出字符流
OutputStreamWriter osw = new OutputStreamWriter(fos,"utf-8");
osw.write("大家好");
osw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void isr(){
InputStream in = System.in;//获取标准输入流
InputStreamReader isr = new InputStreamReader(in);
//使用字符流的缓冲类
BufferedReader br = new BufferedReader(isr);
String line = null;
try {
while((line = br.readLine())!=null){
System.out.println("内容是:"+line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Java之IO(七)转换流 InputStreamReader、OutputStreamWrite
最新推荐文章于 2024-08-29 17:26:38 发布