Java第三十二天,IO操作(续集),读写缓冲区的使用

缓冲区出现原因:

Java对IO的读写都是经过中间途经——JVM虚拟机进行管理的,JVM调用OS操作系统继续完成IO操作。如此一来,整个过程耗费了不小的资源,为了尽量减少这样重复的周期性操作,出现了缓冲区,可以有效的提高系统的性能

一、IO缓冲区类

BufferedInputStream ===> 字节输入缓冲流

BufferedOutputStream ===> 字节输出缓冲流

BufferedReader ===> 字符输入缓冲流

BufferedWriter ===> 字符输出缓冲流

二、BufferedInputStream

1.构造方法

BufferedOutputStream(OutputStream out)

BufferedOutputStream(OutputStream out, int size)

2.常用方法

void flush() ===> 刷新缓冲输出流

void write(byte[] b, int off, int len) ===> 从指定的字节数组写入 len个字节,从偏移 off开始到缓冲的输出流

void write(int b) ===> 将指定的字节写入缓冲的输出流

3.使用方法

import java.io.*;

public class MyBuffer {
    public static void main(String[] args) throws IOException {
        BufferedOutputStream file = new BufferedOutputStream(new FileOutputStream("F:\\data.txt"));
        file.write("这是我写入的数据".getBytes());
        file.flush();
    }
}

二、BufferedInputStream

1.构造方法

BufferedInputStream(InputStream in)

BufferedInputStream(InputStream in, int size)

2.常用方法

int available() ===> 返回从该输入流中可以读取(或跳过)的字节数的估计值

void close() ===> 关闭此输入流并释放与流相关联的任何系统资源。

void mark(int readlimit)

boolean marksupported() ===> 测试这个输入流是否支持 mark和reset方法

int read()

void reset()

long skip(long n)

3.使用方法

import java.io.*;

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

        BufferedInputStream file = new BufferedInputStream(new FileInputStream("F:\\data.txt"));
        int nums = file.available();
        byte[] bytes = new byte[nums];
        file.read(bytes);
        file.close();
        System.out.printf(new String(bytes));
    }
}

三、BufferedWriter

1.构造方法

BufferedWriter(Writer out)

BufferedWriter(Writer out, int sz)

2.常用方法

void close() ===> 关闭流,先刷新

void flush() ===> 刷新流

void newLine() ===> 写一行行分隔符

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

void write(intc)写一个字符

void write(Strings,int off,int len)写一个字符串的一部分

3.使用方法

import java.io.*;

public class MyBuffer {
    public static void main(String[] args) throws IOException {
       
        BufferedWriter file = new BufferedWriter(new FileWriter("F:\\info.txt"));
        file.write("欢迎来到英雄联盟");
        file.flush();
        file.close();
    }
}

四、BufferedReader

1.构造方法

BufferedReader(Reader in)

BufferedReader(Reader in, int sz)

2.常用方法

void close() ===> 关闭流并释放与之相关联的任何系统资源
Stream<string> lines() ===> 返回一个Stream,其元素是从这个BufferedReader读取的行
void mark(int readAheadLimit) ===> 标记流中的当前位置
boolean marksupported() ===> 告诉这个流是否支持mark()操作
int read() ===> 读一个字符
int read(char[]cbuf,int off,int len) ===> 将字符读入数组的一部分
string readLine() ===> 读一行文字
boolean ready() ===> 告诉这个流是否准备好被读取
void reset() ===> 将流重置为最近的标记
long skip(long n) ===> 跳过字符

3.使用方法

import java.io.*;

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

        BufferedReader file = new BufferedReader(new FileReader("F:\\info.txt"));
        String info;
        while ((info = file.readLine()) != null){
            System.out.println(info);
        }
    }
}

 

posted @ 2020-02-25 21:36  IT蓝月  阅读(156)  评论(0编辑  收藏  举报
Live2D