模拟字符缓冲读入流:BufferedReader

/*
 * 模拟字符缓冲读入流:BufferedReader
 *
 * 分析:
 * 1.要属于流的体系
 * 2.要有一个Reader类型的成员变量
 * 3.要有一个带参数的构造方法接收外部传入的流对象
 * 4.模拟readLine(),实现读一行的功能
 * 5.关闭流
 */

import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
//1.要属于流的体系
class MyBufferedReader extends Reader{
    //2.要有一个Reader类型的成员变量
    Reader reader;
    //3.要有一个带参数的构造方法接收外部传入的流对象
    public MyBufferedReader(Reader reader) {
        this.reader = reader;
    }
    //4.模拟readLine(),实现读一行的功能
    public String readLine() throws IOException {
        //a.创建一个临时的可变字符串,用于装当前行的字符
        StringBuffer stringBuffer = new StringBuffer();
        //b.使用read()方法读
        int num = 0;
        while ((num = this.reader.read()) != -1) {
            if (num == ‘\r‘) {
                continue;
            }else if (num == ‘\n‘) {
                return stringBuffer.toString();
            }else {
                stringBuffer.append((char)num);
            }
        }

        //当文本为空时
        if (stringBuffer.length() == 0) {
            return null;
        }

        //当文本只有一行,没有换行符
        return stringBuffer.toString();

        //增加效率的代码
    }
    //5.关闭流
    public void close() throws IOException {
        //关闭自己
        this.reader.close();
    }
    @Override
    public int read(char[] cbuf, int off, int len) throws IOException {
        // TODO Auto-generated method stub
        return 0;
    }

}
public class Demo11 {
    public static void main(String[] args) throws IOException {
        MyBufferedReader myBufferedReader = new MyBufferedReader(new FileReader("text3.txt"));
        String data = null;
        while ((data = myBufferedReader.readLine()) != null) {
            System.out.print(data);
            System.out.println();
        }
        myBufferedReader.close();
    }
}

原文地址:https://www.cnblogs.com/yumengfei/p/11025359.html

时间: 2024-10-04 03:56:04

模拟字符缓冲读入流:BufferedReader的相关文章

字符缓冲流复制java文件

package com.io.liushuaishuai; import java.io.*; public class copyjavaDemo01 { public static void main(String[] args) throws IOException { //创建字符缓冲输入流对象 BufferedReader br = new BufferedReader(new FileReader("C:\\Users\\86132\\IdeaProjects\\javaSE_Code

字符缓冲流BufferedWriter BufferedReader

//字符缓冲流主要用于文本数据的高速写入 package cn.lijun.demo1; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; public class BufferedReaderDemo { public static void main(String[] args) throws Exception { //创建字符输入缓冲流对象 Buf

字符缓冲流 Day20

package com.sxt.prac; /* * 缓冲流之字符缓冲流 defaultCharBufferSize = 8192; * 1.读入到程序 * 2.程序写到文件 * 3.采用循环边读边写 * 两个独有的方法: * BufferedReader br.readLine();//读内容 没有返回null * BufferedWriter bw.newLine; */ import java.io.BufferedReader; import java.io.BufferedWriter

Java之缓冲流(字节/字符缓冲流)

概述 缓冲流,也叫高效流,是对4个基本的 FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流: BufferedInputStream , BufferedOutputStream 字符缓冲流: BufferedReader , BufferedWriter 缓冲流的基本原理及好处 是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率. BufferedOutputStream 字节缓冲输出流 java.io.Buff

java 21 - 6 字符缓冲流的特殊方法以及该方法高效复制文件

字符缓冲流的特殊方法: A.BufferedWriter: public void newLine():根据系统来决定换行符 1 private static void write() throws IOException { 2 //创建字符输出缓冲流 3 BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt")); 4 for(int x = 0;x < 10 ; x++){ 5 bw.write(&quo

JAVA笔记12__字节、字符缓冲流/打印流/对象流/

/** * !!:以后写流的时候一定要加入缓冲!! * 对文件或其它目标频繁的读写操作,效率低,性能差. * 缓冲流:好处是能更高效地读写信息,原理是将数据先缓冲起来,然后一起写入或读取出来. * * BufferedInputStream:字节缓冲流(有一个内部缓冲区数组,用于缓冲数据) */ public class Main { public static void main(String[] args) { input(); output(); } /** * 使用字节缓冲流进行读取操作

字符缓冲流,properties类,序列化流与反序列化流,打印流

1.字符缓冲流的写法与字节缓冲流类似,也是用字符缓冲对象嵌套字符读写对象.格式为: BufferedReader br=new BufferedReader(new FileReader(数据源)): BufferedWriter bw=new BufferedWriter(new FileWriter(目的地)): 2.BufferedReader有一个优势是可以读取一个文本行,它的方法是readLine(),这与FileReader相区别. 3.在IO操作时选用哪个对象,要看输入还是输出,文

字符缓冲流

package io; import java.io.BufferedReader;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader; /** * java.io.BufferedReader * 缓冲字符输入流,特点:可以按行读取字符串 * * @author 小明 * */public class BRDemo { public static void main

字符缓冲流BufferedWriter和BufferedWriter

字符缓冲流 1.基本用法 1 import java.io.BufferedReader; 2 import java.io.BufferedWriter; 3 import java.io.FileReader; 4 import java.io.FileWriter; 5 import java.io.IOException; 6 7 /** 8 * BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. 9 * BufferedWrit