Java I/O 教程(十 一) BufferedWriter和BufferedReader

Java BufferedWriter 类


Java BufferedWriter class 继承了Writer类,为Writer实例提供缓冲。 提升了写字符和字符串性能。

类定义:

public class BufferedWriter extends Writer  

构造函数:

BufferedReader(Reader in)
Creates a buffering character-input stream that uses a default-sized input buffer.
BufferedReader(Reader in, int sz)
Creates a buffering character-input stream that uses an input buffer of the specified size.

方法:

void newLine()                                添加新行
void write(int c)                            写单个字符
void write(char[] cbuf, int off, int len)    写部分字符数组
void write(String s, int off, int len)        写部分字符串
void flush()                                冲刷输入流
void close()                                关闭输入流

例子

package com.dylan.io;

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

/**
 * @author xusucheng
 * @create 2018-01-13
 **/
public class BufferedWriterDemo {
    public static void main(String[] args) throws IOException{
        Writer w = new FileWriter("D:\\testout.txt");
        BufferedWriter bw = new BufferedWriter(w);
        bw.write("我是中国人");
        bw.newLine();
        bw.write("我此生无悔入华夏!");
        bw.flush();
        bw.close();
        System.out.println("写入成功!");
    }
}


Java BufferedReader 类


Java BufferedReader class继承了Reader类。
用于从字符输入流读取文本,通过缓冲字符方式能给字符,数组和行级别读取带来不错性能提升。
缓冲区大小可以自定义,或者使用默认大小。默认大小足以应对绝大多数情况。

类定义


public class BufferedReader extends Reader  
Java BufferedReader class constructors

构造函数


BufferedReader(Reader in)
Creates a buffering character-input stream that uses a default-sized input buffer.
BufferedReader(Reader in, int sz)
Creates a buffering character-input stream that uses an input buffer of the specified size.


方法

int read()                                    读取单字符
int read(char[] cbuf, int off, int len)        读取字符放到数组中
boolean markSupported()                        告诉你这个流是否支持mark操作
String readLine()                            读取一行文本
boolean ready()                                测试输入流是否准备好被读取
long skip(long n)                            跳过字符
void reset()                                重置流到最近的标记
void mark(int readAheadLimit)                标记当前流位置
void close()                                关闭流,是否与其相关的资源

例子1

package com.dylan.io;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;

/**
 * @author xusucheng
 * @create 2018-01-13
 **/
public class BufferedReaderDemo {
    public static void main(String[] args) throws IOException {
        Reader r = new FileReader("D:\\testout.txt");
        BufferedReader br = new BufferedReader(r);
        if (br.ready()) {
            String content = null;
            while ((content = br.readLine()) != null) {
                System.out.println(content);
            }
        }

        br.close();
    }
}

例子2

package com.dylan.io;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;

/**
 * 读取控制台输入流
 * @author xusucheng
 * @create 2018-01-13
 **/
public class BufferedReaderConsoleDemo {
    public static void main(String[] args) throws IOException{
        Reader r = new InputStreamReader(System.in);
        BufferedReader br = new BufferedReader(r);
        System.out.println("请输入您的姓名:");
        String name = br.readLine();
        if(!(name==null || "".equals(name))){
            System.out.println("欢迎"+name+"!");
        }

        br.close();
    }
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值