一、字符流:
读写时都是以字符为单位进行的。
1:字符流的父类:
输出流:Writer
输入流:Reader
2:OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的
将要写入流中的字符编码成字节。charset
它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
3. 构造器如下:
1) 输出流的构造器:
OutputStreamWriter(OutputStream os)
OutputStreamWriter(OutputStream os,String charset)
2) 输入流的构造器:
InputStreamReader(InputStream is)
InputStreamReader(InputStream is,String charset])
3)常用方法:
close():关闭此流,但要先刷新它
flush():刷新该流的缓冲。
getEncoding(): 返回此流使用的字符编码的名称。
write(char[] cbuf, int off, int len) :写入字符数组的某一部分。
write(int c) :写入单个字符。
write(String str, int off, int len): 写入字符串的某一部分
写出参数num的二进制的低十六位。
* write(char[] ch):
* write(char[] ch,int startIndex,int length)
* write(String str):写出字符串
* write(String str,int startIndex,int length)
二、:缓冲字符流:
1)BufferedWriter--必须传一个字符流参数 , [ 字符输出缓冲流: 缓冲流-字符输出流-字节输出流]
定义: 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
2)构造器:
BufferedWriter bw=new BufferedWriter( new OutputStreamWriter(
new FileOutputStream("b.txt",true) , "utf-8" ) ) ;
BufferedReader br=new BufferedReader( new InputStreamReader(
new FileInputStream("b.txt"),"utf-8"));
例子:
bw.write('王');
bw.flush();//实时刷新到硬盘上 清空缓冲区的意思
bw.write("从明".toCharArray());//6个
bw.write("你好帅\r\n");
bw.close();//流关闭前才会清空
3)常用方法://可读取一行
1) int read():
* 返回一个字符的int数值
2)read(char[] ch)
* 读取多个字符存入字符数组中
3)readLine()
* 读取一行字符串,读不到数据返回null
4)write(char ch)
* 作用:是写一个字符类型
5)write(char[] ch)
* 作用:写出一个字符数组
6)write(char[] ch,int startIndex,int length)
* 作用:写出一个固定长度的字符数组
7)write(String str):
* 作用:写出一个字符串
8)write(String str,int startIndex,int length)
4).技巧:
* 一般都是PrintWriter和bufferedReader对应着使用。
* PrintWriter这个类提供了自动刷新功能,
* 要使用带ln的println的方法
* 此类提供了很多个构造器:
* 常用的两个:
* PrintWriter(OutputStream so,boolean autoFlush)---字节流
* PrintWrite(Writer wt,boolean autFlush)
* 当autoFlush位true时,
* 提供了自动刷新缓冲区的功能
PrintWriter pw=new PrintWriter(
new FileOutputStream("c.txt",true),true);
pw.println("世界你好");//流关闭前,一定会调用flush方法进行清空缓冲区。
pw.flush();当构造器没有设置行刷新功能时,可以手动调此方法进行实时更新。
三、FileReader: --也有刷新功能,但是不自动换行
1.构造器:
FileReader(String filepath)
FileReader(File file)
相当于InputStreamReader和FileInputStream的结合
FileWriter: 不自动换行
1.构造器:
FileWriter(File file,[boolean append])
FileWriter(String filepath,[boolean append])
相当于OutputStreamWriter和FileOutputStream的结合(BufferedWriter)
例:FileWriter fw=new FileWriter("a.txt",true);
fw.write("asdfasdfa123121313214342112");
fw.flush();
fw.close();