使用缓冲功能的BufferedReader和BufferedWriter复制文本文件,按照行读写

来源:互联网 发布:英文小说优美 知乎 编辑:程序博客网 时间:2024/05/22 06:55

BufferedReader

构造方法摘要BufferedReader(Reader in)
          创建一个使用默认大小输入缓冲区的缓冲字符输入流。BufferedReader(Reader in, int sz)
          创建一个使用指定大小输入缓冲区的缓冲字符输入流。  方法摘要 voidclose()
          关闭该流并释放与之关联的所有资源。 voidmark(int readAheadLimit)
          标记流中的当前位置。 booleanmarkSupported()
          判断此流是否支持 mark() 操作(它一定支持)。 intread()
          读取单个字符。 intread(char[] cbuf, int off, int len)
          将字符读入数组的某一部分。 StringreadLine()
          读取一个文本行。 booleanready()
          判断此流是否已准备好被读取。 voidreset()
          将流重置到最新的标记。 longskip(long n)
          跳过字符。

BufferedWriter


构造方法摘要BufferedWriter(Writer out)
          创建一个使用默认大小输出缓冲区的缓冲字符输出流。BufferedWriter(Writer out, int sz)
          创建一个使用给定大小输出缓冲区的新缓冲字符输出流。  方法摘要 voidclose()
          关闭此流,但要先刷新它。 voidflush()
          刷新该流的缓冲。 voidnewLine()
          写入一个行分隔符。 voidwrite(char[] cbuf, int off, int len)
          写入字符数组的某一部分。 voidwrite(int c)
          写入单个字符。 voidwrite(String s, int off, int len)
          写入字符串的某一部分。

实现代码:

public class CopyBufferReaderToBufferWriter {    public static void main(String[] args) {        File inputFile=new File("E:1.dat");        //必须先创建目录        File originalOutputFile=new File("E:2");        if(!originalOutputFile.exists()){            originalOutputFile.mkdirs();        }        //再创建文件        File outputFile=new File(originalOutputFile,"2.dat");        try {            BufferedReader bufferedReader=new BufferedReader(new FileReader(inputFile));            BufferedWriter bufferedWriter=new BufferedWriter(new FileWriter(outputFile));            String line=null;
//不再是!=-1,而是!=null了,很重要            while ((line=bufferedReader.readLine())!=null){                bufferedWriter.write(line);                bufferedWriter.newLine();                bufferedWriter.flush();            }        } catch (Exception e) {            e.printStackTrace();        }    }}









1 0
原创粉丝点击