Java中的缓冲流

Posted HzdWwZz"LJF

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的缓冲流相关的知识,希望对你有一定的参考价值。

BufferedWriter和BufferedReader

BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。

BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。

构造方法

BufferedWriter(Writer out)

BufferedReader(Reader in)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class LAST {
    public static void main(String[] args) throws IOException {
        //创建输出缓冲流对象
        BufferedWriter bw=new BufferedWriter(new FileWriter("bw.txt"));
        bw.write("hello");
        bw.close();
        
        //创建输入缓冲流对象
        BufferedReader br=new BufferedReader(new FileReader("bw.txt"));
        //一次读取一个字符
        int ch;
//      while((ch=br.read())!=-1) {
//          System.out.print((char)ch);
//      }
        //br.close();
        
        //一次读取一个字符数组
        char[] chs=new char[1024];
        int len;
        while((len=br.read(chs))!=-1) {
            System.out.println(new String(chs,0,len));
        }
        br.close();
    }
}

缓冲流的特殊功能

BufferedWriter

void newLine() 写一个换行符,这个换行符由系统决定

BufferedReader

//String readLine() 一次读取一行数据 但是不读取换行符
    
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class LAST {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader("bw.txt"));
        String line;
        while((line=br.readLine())!=null) {
            System.out.println(line);
        }
        br.close();
    }
}

把集合中的数据写到文件里面

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class LAST {
    public static void main(String[] args) throws IOException {
        ArrayList<String> arr=new ArrayList<String>();
        arr.add("java");
        arr.add("android");
        arr.add("ios");
        BufferedWriter bw=new BufferedWriter(new FileWriter("arr.txt"));
        
        for(int x=0;x<arr.size();x++) {
            String s=arr.get(x);
            bw.write(s);
            bw.newLine();
            bw.flush();
        }
        bw.close();
        
    }
}

把文本文件中的数据读取到集合

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class LAST {
    public static void main(String[] args) throws IOException {
        BufferedReader br=new BufferedReader(new FileReader("arr.txt"));
        ArrayList<String> arr=new ArrayList<String>();
        String line;
        while((line=br.readLine())!=null) {
            arr.add(line);
        }
        br.close();
        for(int x=0;x<arr.size();x++) {
            String s=arr.get(x);
            System.out.println(s);
        }
    }
}

以上是关于Java中的缓冲流的主要内容,如果未能解决你的问题,请参考以下文章

java中的缓冲流

Java中的缓冲流

java 缓冲流

Java第三阶段学习(缓冲流)

java字节缓冲流和字符缓冲流

Java IO—缓冲字符流以及IO中的装饰者模式