zoukankan      html  css  js  c++  java
  • 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);
            }
        }
    }
    
  • 相关阅读:
    数独游戏技巧(转)
    Strange Way to Express Integers(中国剩余定理+不互质)
    C Looooops(poj2115+扩展欧几里德)
    X问题(中国剩余定理+不互质版应用)hdu1573
    合并果子(优先队列 +或者+哈夫曼)
    Shaping Regions(dfs)
    Modular Inverse(zoj3609+欧几里德)
    Contest2075
    Clock Pictures(kmp + Contest2075
    Opening Ceremony(贪心)
  • 原文地址:https://www.cnblogs.com/viplanyue/p/12700443.html
Copyright © 2011-2022 走看看