BufferedWriter 和 BufferedReader 的基本用法

BufferedWriter 和 BufferedReader 的基本用法http blog csdn net liuhenghui52 article details BufferedWrit 和 BufferedRead 的基本用法 附演示程序 以及一个复制文本文件的程序 BufferedWrit 和 BufferedRead 为带有默认缓冲的字符输出输入流 因为有缓冲区所以很效率比没有缓冲区的很高 一

http://blog.csdn.net/liuhenghui5201/article/details/8279557“>BufferedWriter 和 BufferedReader 的基本用法,附演示程序。以及一个复制文本文件的程序

BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以很效率比没有缓冲区的很高。

一、BufferedWriter 类

构造方法:bufferedWriter bf = new bufferedWriter(Writer out );

主要方法:void write(char ch);//写入单个字符。

                  void write(char []cbuf,int off,int len)//写入字符数据的某一部分。

                  void write(String s,int off,int len)//写入字符串的某一部分。

                  void newLine()//写入一个行分隔符。

                  void flush();//刷新该流中的缓冲。将缓冲数据写到目的文件中去。

                  void close();//关闭此流,再关闭前会先刷新他。

[java]
view plain
copy

print
?

package Buffered;  

import java.io.BufferedWriter;  

import java.io.FileWriter;  

import java.io.IOException;  

public class BufferedWriterDemo {  

public static void main(String[] args) throws IOException {  

        FileWriter fw = new FileWriter(“Buffered.txt”);  

//      fw.write(“ok168”);

//      fw.close();

/**

         * 为了提高写入的效率,使用了字符流的缓冲区。

         * 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。

         */

        BufferedWriter bufw = new BufferedWriter(fw);  

//使用缓冲区中的方法将数据写入到缓冲区中。

        bufw.write(”hello world !”);  

        bufw.newLine();  

        bufw.newLine();  

        bufw.write(”!hello world !”);  

        bufw.write(”!hello world !”);  

//使用缓冲区中的方法,将数据刷新到目的地文件中去。

        bufw.flush();  

//关闭缓冲区,同时关闭了fw流对象

        bufw.close();     

    }  

}  

package Buffered;

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

public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("Buffered.txt");
// fw.write("ok168");
// fw.close();
/**
* 为了提高写入的效率,使用了字符流的缓冲区。
* 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。
*/
BufferedWriter bufw = new BufferedWriter(fw);

//使用缓冲区中的方法将数据写入到缓冲区中。
bufw.write("hello world !");
bufw.newLine();
bufw.newLine();
bufw.write("!hello world !");
bufw.write("!hello world !");
//使用缓冲区中的方法,将数据刷新到目的地文件中去。
bufw.flush();
//关闭缓冲区,同时关闭了fw流对象
bufw.close();
}
}

二、BufferedReader类。

构造方法:BufferedReader br = new BufferReader(Reader in);

主要方法:int read();//读取单个字符。

                  int read(char[] cbuf,int off,int len);//将字符读入到数组的某一部分。返回读取的字符数。达到尾部 ,返回-1。

                  String readLine();                        //读取一个文本行。

                  void close();                                //关闭该流。并释放与该流相关的所有资源。

[java]
view plain
copy

print
?

package Buffered;  

import java.io.BufferedWriter;  

import java.io.FileWriter;  

import java.io.IOException;  

public class BufferedWriterDemo {  

public static void main(String[] args) throws IOException {  

        FileWriter fw = new FileWriter(“Buffered.txt”);  

//      fw.write(“ok168”);

//      fw.close();

/**

         * 为了提高写入的效率,使用了字符流的缓冲区。

         * 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。

         */

        BufferedWriter bufw = new BufferedWriter(fw);  

//使用缓冲区中的方法将数据写入到缓冲区中。

        bufw.write(”hello world !”);  

        bufw.newLine();  

        bufw.newLine();  

        bufw.write(”!hello world !”);  

        bufw.write(”!hello world !”);  

//使用缓冲区中的方法,将数据刷新到目的地文件中去。

        bufw.flush();  

//关闭缓冲区,同时关闭了fw流对象

        bufw.close();     

    }  

}  

package Buffered;

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

public class BufferedWriterDemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("Buffered.txt");
// fw.write("ok168");
// fw.close();
/**
* 为了提高写入的效率,使用了字符流的缓冲区。
* 创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联。
*/
BufferedWriter bufw = new BufferedWriter(fw);

//使用缓冲区中的方法将数据写入到缓冲区中。
bufw.write("hello world !");
bufw.newLine();
bufw.newLine();
bufw.write("!hello world !");
bufw.write("!hello world !");
//使用缓冲区中的方法,将数据刷新到目的地文件中去。
bufw.flush();
//关闭缓冲区,同时关闭了fw流对象
bufw.close();
}
}

自定义的一个myBufferedReader类。

[java]
view plain
copy

print
?

package Buffered;  

import java.io.FileReader;  

import java.io.IOException;  

public class MyBufferedReader {  

private FileReader fr;  

private char []buf = new char[1024];  

private int count = 0;  

private int pos = 0;  

public MyBufferedReader(FileReader f){  

this.fr = f;          

    }  

public int myRead() throws IOException{  

if(count == 0){  

            count = fr.read(buf);  

            pos = 0;  

        }  

if(count<0)  

return –1;  

int ch = buf[pos++];  

        count–;  

return ch;   

    }  

public String myReadLine() throws IOException{  

        StringBuilder sb = new StringBuilder();  

int ch = 0;  

while ((ch = myRead()) != –1) {  

if (ch == ‘\r’)  

continue;  

if (ch == ‘\n’)  

return sb.toString();  

            sb.append((char) ch);  

if(count == 0)  

return sb.toString();             

        }  

return null;  

    }  

public void myClose() throws IOException {  

        fr.close();  

    }  

}  

package Buffered;

import java.io.FileReader;
import java.io.IOException;

public class MyBufferedReader {

private FileReader fr;
private char []buf = new char[1024];
private int count = 0;
private int pos = 0;
public MyBufferedReader(FileReader f){
this.fr = f;
}
public int myRead() throws IOException{
if(count == 0){
count = fr.read(buf);
pos = 0;
}
if(count<0)
return -1;
int ch = buf[pos++];
count--;
return ch;
}

public String myReadLine() throws IOException{
StringBuilder sb = new StringBuilder();
int ch = 0;
while ((ch = myRead()) != -1) {
if (ch == '\r')
continue;
if (ch == '\n')
return sb.toString();
sb.append((char) ch);
if(count == 0)
return sb.toString();
}
return null;
}
public void myClose() throws IOException {
fr.close();
}
}

使用bufferedReader 和bufferWriter方法写的一个复制文本的小程序。

[java]
view plain
copy

print
?

package IOtest;  

import java.io.BufferedReader;  

import java.io.BufferedWriter;  

import java.io.FileReader;  

import java.io.FileWriter;  

import java.io.IOException;  

public class TextCopyByBuf {  

/**

     * 首先创建读取字符数据流对象关联所要复制的文件。

     * 创建缓冲区对象关联流对象。

     * 从缓冲区中将字符创建并写入到要目的文件中。

     * @throws IOException 

     */

public static void main(String[] args) throws IOException {  

        FileReader fr = new FileReader(“C:\\demo.txt”);  

        FileWriter fw = new FileWriter(“D:\\love.txt”);  

        BufferedReader bufr = new BufferedReader(fr);  

        BufferedWriter bufw = new BufferedWriter(fw);  

//一行一行的寫。

        String line = null;  

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

            bufw.write(line);  

            bufw.newLine();  

            bufw.flush();  

        }  

/*  一個字節一個字節的寫。

        int ch = 0;

        while((ch = bufr.read())!=-1){

            bufw.write(ch);

        }*/

        bufr.close();  

        bufw.close();  

    }  

}  

package IOtest;

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

public class TextCopyByBuf {

/**
* 首先创建读取字符数据流对象关联所要复制的文件。
* 创建缓冲区对象关联流对象。
* 从缓冲区中将字符创建并写入到要目的文件中。
* @throws IOException
*/
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("C:\\demo.txt");
FileWriter fw = new FileWriter("D:\\love.txt");
BufferedReader bufr = new BufferedReader(fr);
BufferedWriter bufw = new BufferedWriter(fw);
//一行一行的寫。
String line = null;
while((line = bufr.readLine()) != null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
/* 一個字節一個字節的寫。
int ch = 0;
while((ch = bufr.read())!=-1){
bufw.write(ch);
}*/
bufr.close();
bufw.close();
}
}
                
编程小号
上一篇 2025-02-05 19:30
下一篇 2025-03-09 15:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/136044.html