1.缓冲流
1)BufferedReader:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
2)BufferedWriter:从字符输出流中读取文本,缓冲各个字符,从而实现单个字符、数组和字符串的高效读取。
创建缓冲流的对象
String s1=源文本;
String s2=新文本;
BufferedReader br=new BufferedReader(new FileReader(s1));
读数据:一次读写一个字符
int ch;
while((ch=br.read())!=-1){
bw.write((char)ch);
bw.flush();
}
一次读写一个字符数组
char[] ch=new char[1024];
int rr;
while((rr=br.read(ch))!=-1){
bw.write(ch, 0, rr);
bw.flush();
}
代码示例练习:
package BufferedSystem;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class BufferedReaderTest1 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("FileWriterTest1.java"));
//读取文件,1.一次读取一个字符
/*int ch;
while((ch=br.read())!=-1){
System.out.print((char)ch);*/
//2.一次读写一个字符数组
char[] chs=new char[1024];
int len;
while((len=br.read(chs))!=-1){//读取数据时,从数组集合中读取,当读取到末尾时,数值为-1;
System.out.print(new String(chs,0,len));//将一次读取的字符数组转换为字符串输出
}
br.close();
}
}
BufferedWriter bw=new BufferedWriter(new FileWriter(s2));
构造方法:bw.writer("Hello");
刷新数据:bw.flush();
释放资源:bw.close();
代码示例练习:
package BufferedSystem;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedWriterTest2 {
public static void main(String[] args) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter("a.txt"));
bw.write("Hello");
bw.write("world");
bw.close();
}
}
缓冲流复制文本练习
需求:将项目路径下FileWriterTest1.java中的内容复制到CopyCop.java中
public class BufferedRWriterTest3 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("FileWriterTest1.java"));
BufferedWriter bw=new BufferedWriter(new FileWriter("a.txt"));
//读文件1.一次读取一个字符
int ch;
while((ch=br.read())!=-1){
bw.write((char)ch);
}
br.close();
bw.close();
}
}
3:字符缓冲流的特殊功能
1)BufferedWriter
void newLine();写一个换行符,这个换行符由系统决定
2)BufferedReader
void readLine();//一次读取一行数据,但不读取换行符
创建输出对象
写数据 换行 bw.newLine();
创建输入对象
public class BufferedWriterTest {
public static void main(String[] args) throws IOException {
BufferedWriter bw=new BufferedWriter(new FileWriter("b.txt"));
bw.write("hello");
//BufferedWriter
// void newLine()//写一个换行符,这个换行符由系统决定
bw.newLine();
bw.write("world");
bw.close();
}
}
读数据 String readLine(); String line=br.readLine();当数据为空时,为null
代码示例实现
public class BufferedReaderTest5 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new FileReader("FileWriterTest1.java"));
BufferedWriter bw=new BufferedWriter(new FileWriter("cbb.txt"));
String line;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine();
}
bw.close();
br.close();
}
}