字符输入流Reader
字符输出流Writer
字节字符转换流InputStreamReader和OutputStreamWriter与缓冲流一样,需要将输入输出流作为参数传入,如:
FileInputStream fis = new FileInputStream("java_stream\\study.txt");
InputStreamReader isr = new InputStreamReader(fis);
使用字节字符转换流来读取文件study.txt中的内容的两种方式:
study.txt文件:
方式一:
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("java_stream\\study.txt");
InputStreamReader isr = new InputStreamReader(fis);
FileOutputStream fos = new FileOutputStream("java_stream\\study1.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
int n = 0;
while((n=isr.read())!=-1){
System.out.print((char)n);
}
fis.close();
fos.close();
isr.close();
osw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
方式二:
char[] cbuf = new char[10];
int n = 0;
while((n=isr.read(cbuf))!=-1){
String s = new String(cbuf);
System.out.print(s);
}
输出:
你好,Java课程
你好,Java课程
你好,Java课程
你好,Java课程
你好,Java课程
你好,Java课程
你好,Java课程
你好,Java课程
你好,Java课程
将study.txt文件读取并写到study1.txt文件中:
char[] cbuf = new char[10];
int n = 0;
while((n=isr.read(cbuf))!=-1){
osw.write(cbuf);
osw.flush();
}
字符输入缓冲流BufferedReader
字符输出缓冲流BufferedWriter
和字节输入输出流使用方法一样:
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("java_stream\\study.txt");
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
FileOutputStream fos = new FileOutputStream("java_stream\\study1.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
char[] cbuf = new char[10];
int n = 0;
while((n=br.read(cbuf))!=-1){
bw.write(cbuf);
bw.flush();
}
fis.close();
fos.close();
isr.close();
osw.close();
br.close();
bw.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}