美文网首页
字符缓冲流BufferedReader和BufferWriter

字符缓冲流BufferedReader和BufferWriter

作者: 卓昂芭比 | 来源:发表于2018-12-27 18:19 被阅读0次

    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();

    }

    }

    相关文章

      网友评论

          本文标题:字符缓冲流BufferedReader和BufferWriter

          本文链接:https://www.haomeiwen.com/subject/avrdlqtx.html