java读取缓冲输入_Java高效缓冲字符输入输出流BufferedReader和BufferedWriter

BufferedReader和BufferedWriter都分别是Reader和Writer的子类,构造器中参数要求传入是Reader和Writer下的子类就行,如

new BufferedReader(new FileReader("IOTest.java"));

FileReader就是Reader的一个子孙类

4b4ac8f4d8aea846f4d3fb35eb90f751.png

9fff73efe9660539d444d8235bb231d0.png

552bfdf4896425153395b375893e8a01.png

1. 用BufferedReader读取一个文件内容然后输出到控制台

使用readLine()读取一行

readLine() 例子:

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

public class BufferReaderDemo1 {

public static void main(String[] args) {

BufferedReader reader = null;

try {

//创建一个高效缓存字符输入流对象 路径随意更改

reader = new BufferedReader(new FileReader("CopyDemo1.java"));

String line = null;

//读取每一行

while((line = reader.readLine()) != null){

//打印一行

System.out.println(line);

}

} catch (Exception e) {

e.printStackTrace();

}finally {

//关闭外层的对象的时候,内层的资源会自动被关闭

if(reader != null){

try {

reader.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

2. 用BufferedReader和BufferedWriter读取一个文件内容然后写到另一个文件(copy过去)

import java.io.*;

public class CopyTest {

public static void main(String[] args) {

BufferedReader reader = null;

BufferedWriter writer = null;

try {

//创建高效缓冲输入流 路径随意

reader = new BufferedReader(new FileReader("src/cn/demo/IOTest.java"));

//创建高效缓冲输出流 路径随意

writer = new BufferedWriter(new FileWriter("IOTest.java"));

//创建一个读取一行的变量

String line = null;

while((line = reader.readLine()) != null){

//把读入的这一行数据写入到高效缓冲字符输出流里面

writer.write(line);

//换行

writer.newLine();

//刷新缓存

writer.flush();

}

} catch (Exception e) {

e.printStackTrace();

} finally {

try {

if(writer != null){

writer.close();

}

if(reader != null){

reader.close();

}

} catch (IOException e) {

e.printStackTrace();

}

}

}

}


版权声明:本文为weixin_42303955原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。