加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Java IO 学习笔记一:为什么带 Buffer 的比不带 Buffer 的快

发布时间:2023-04-18 14:18:52 所属栏目:教程 来源:
导读:Java IO 学习笔记一:为什么带 Buffer 的比不带 Buffer 的快

原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

Java 中为什么 BufferedReader ,BufferedWriter 要比 FileReader 和 FileWrite
Java IO 学习笔记一:为什么带 Buffer 的比不带 Buffer 的快 

原文地址:Java IO学习笔记一:为什么带Buffer的比不带Buffer的快

Java 中为什么 BufferedReader ,BufferedWriter 要比 FileReader 和 FileWriter 高效?

其中R大的一个回答:

image

我们可以通过实验来说明这个问题:

环境:CentOS 7, jdk1.8

首先,写一个不带 buffer 的代码

static byte[] data = "123456789\n".getBytes();
static String path = "/data/io/out.txt";
public static void testBasicFileIO() throws Exception {
    File file = new File(path);
    FileOutputStream out = new FileOutputStream(file);
    while (true) {
        out.write(data);
    }
}
同时,我们写一个带 buffer 的代码

public static void testBufferedFileIO() throws Exception {
   File file = new File(path);
   bufferedoutputstream out = new bufferedoutputstream(new FileOutputStream(file));
   while (true) {
       out.write(data);
   }
}
通过main函数的args参数来控制执行哪个方法,完整代码为:

import java.io.bufferedoutputstream;
import java.io.File;
import java.io.FileOutputStream;
public class OSFileIO {
    static byte[] data = "123456789\n".getBytes();
    static String path = "/data/io/out.txt";
    public static void main(String[] args) throws Exception {
        switch (args[0]) {
            case "0":
                testBasicFileIO();
                break;
            case "1":
                testBufferedFileIO();
                break;
            default:
                break;
        }
    }
    public static void testBasicFileIO() throws Exception {
        File file = new File(path);
        FileOutputStream out = new FileOutputStream(file);
        while (true) {
            out.write(data);
        }
    }
    public static void testBufferedFileIO() throws Exception {
        File file = new File(path);
        bufferedoutputstream out = new bufferedoutputstream(new FileOutputStream(file));
        while (true) {
            out.write(data);
        }
    }
}

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章