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

    xiaoxiao2021-03-25  120

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

    转载请注明原文地址: https://ju.6miu.com/read-17331.html

    最新回复(0)