字符流的缓冲区
1:缓冲区的出现提高了对数据的读写效率。
2:对应类
(1):BufferedWriter
(2):BufferedReader
3:缓冲区要结合流才可以使用
4:在流的基础上对流的功能进行了增强
//BufferedWriter的特有方法 newLine();//换行
public class Io12_1 {
private static final String LINE_SEPERATOR = System.getProperty("line.separator");
public static void main(String[] args) throws IOException {
FileWriter fw=new FileWriter("E:\\Io\\io2.txt");
//为了提高写入的效率,使用了字符流的缓冲区。
//创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联
BufferedWriter bufw=new BufferedWriter(fw);
//fw.write("ancscs");
//使用缓冲区的写入方法将数据写入到缓冲区中
// bufw.write("abcde"+LINE_SEPERATOR+"hahahahaha");
bufw.write("aaaa");
bufw.newLine();//换行
bufw.write("vvvv");
//使用缓冲区的刷新方法将数据刷到目的地中
bufw.flush();
//关闭缓冲区,其实就是关闭的就是缓冲区的流对象
bufw.close();
}
}
字符流-缓冲区-BufferedReader
//BufferedReader的特有方法readLine();
public class Io13_1 {
public static void show() throws IOException{
FileReader fr=new FileReader("E:\\Io\\io2.txt");
int len=0;
while((len=fr.read())!=-1){
System.out.println((char)len);
}
}
public static void show2() throws IOException {
FileReader fr=new FileReader("E:\\Io\\io2.txt");
char[] buf=new char[1024];
int len=0;
while((len=fr.read(buf))!=-1){
System.out.println(new String(buf,0,len));
}
}
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("E:\\Io\\io.txt");
BufferedReader bufr=new BufferedReader(fr);
/* String line1=bufr.readLine();
System.out.println(line1);
String line2=bufr.readLine();
System.out.println(line2); // 没有该行就使用null来表示
String line3=bufr.readLine();
System.out.println(line3);
String line4=bufr.readLine();
System.out.println(line4);*/
String line=null;
while((line=bufr.readLine())!=null){
System.out.println(line);
}
}
}
字符流-缓冲区-复制文本文件
public class Io15_1 {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("E:\\Io\\io.txt");
BufferedReader bufr=new BufferedReader(fr);
FileWriter fw=new FileWriter("E:\\Io\\iobuffer.txt");
BufferedWriter bufw=new BufferedWriter(fw);
String line=null;
while((line=bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
/* int ch=0;
while((ch=bufr.read())!=-1){
bufw.write(ch);
}*/
bufr.close();
bufw.close();
}
}
LineNumberReader
public class Io20_1 {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("E:\\Io\\io.txt");
LineNumberReader lnr=new LineNumberReader(fr);//可以产生行号
String line=null;
lnr.setLineNumber(100); //设置行号是多少开始
while((line=lnr.readLine())!=null){
System.out.println(lnr.getLineNumber()+":"+line); //101:abcde
}
}
}