5、IO--BufferedReader&BufferedReader

BufferedReader

常见方法:

BufferedReader(Reader in)  接收一个Reader类的实例

readLine()    一次性从缓冲区中将内容全部读取出来

注意:

BufferedReader中只能接收输入流的实例

必须使用字符输入流和字节输入流的的转换类InputStreamReader将字节输入流转换为字符流

实例:

此时关闭是由里到外进行关闭

	public static void main(String[] args) throws IOException {
		
		//1、
		File file = new File("d:\test.txt");
		InputStream in =new FileInputStream(file);
		//转化流
		Reader reader = new InputStreamReader(in);
		
		//2、
		BufferedReader breader = null;
		breader = new BufferedReader(reader);
		
		String str = null;
		while((str = breader.readLine())!=null){
			System.out.println(str);
		}
		
		//3、关闭
		in.close();
		reader.close();
		breader.close();
		
	}

读取的结果:

BufferedWriter

主要的写方法:

注意:

BufferedReader中只能接收输入流的实例

必须使用字符输入流和字节输入流的的转换类OutputStreamWriter将字节输入流转换为字符流

 注意:

关闭是由外至里

    public static void main(String[] args) throws IOException {
        
        //1、
        File file = new File("d:\test.txt");
        OutputStream   out = new FileOutputStream(file);
        Writer writer = new OutputStreamWriter(out);
        
        //2、
        BufferedWriter bwriter = null;
        bwriter = new BufferedWriter(writer);
        
        
        //3、
        bwriter.write("我是MrChengs 

 我爱博客园");
        
        //4、关闭流资源
        bwriter.close();
        writer.close();
        out.close();
}

 小测试复制文件内容:

    public static void main(String[] args) throws IOException {
        
        //将test.txt文件的内容复制到aaa.txt文件中
        //1、
        //被复制内容的为念
        File file = new File("d:\test.txt");
        InputStream in = new FileInputStream(file);
        Reader reader = new InputStreamReader(in);
        //空文件  即将被test.txt的内容进行填充
        //File file1 = new File("aaa.txt");
        OutputStream out = new FileOutputStream("d:\aaa.txt");
        Writer writer = new OutputStreamWriter(out);
        
        //2、
        BufferedWriter bwriter = null;
        bwriter = new BufferedWriter(writer);
        
        BufferedReader breader = null;
        breader = new BufferedReader(reader);
        
        
        //3、
        String str =null;
        int i = 0;
        
        while((str = breader.readLine()) != null){
            bwriter.write(str);
        }
        
        System.out.println("--");
        
        //4、关闭
        in.close();
        reader.close();
        breader.close();
        
        bwriter.close();
        writer.close();
        out.close();
}

 此时出现的问题是复制的内容仅仅之后填充再一行中

 解决方法:

原文地址:https://www.cnblogs.com/Mrchengs/p/10813600.html