练习-Java输入输出之字节缓冲IO流之字节缓冲流的高性能

任务描述

本关任务:分别使用字节缓冲输入流(BufferedInputStream)和文件字节输入流(FileInputStream)读取给定的文件,并输出它们各自的读取时间。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,分别使用字节缓冲输入流(BufferedInputStream)和文件字节输入流(FileInputStream)读取给定的文件,并输出它们各自的读取时间,具体要求如下:

  • 接收给定的一行字符串(如:/test/a.txt。代表文件路径);
  • 在右侧编辑区内的 inputStream() 方法中使用文件字节输入流的 read(byte[])方法读取文件,在 bufferStream() 方法中使用字节缓冲输入流的 read(byte[])方法读取文件,必须确保两个 read()方法中的数组长度都为 8;
  • 返回各自读取文件的时间(毫秒表示),但是无需打印读取内容。
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;

public class StudentTest {
    Scanner input = new Scanner(System.in);     // 获取给定文件字符串
	String str = input.next();

    public Long bufferStream() throws IOException {
        // 请在Begin-End间编写完整代码
        /********** Begin **********/
        // 使用缓冲流读取给定文件,并返回读取时间
        byte[] bytes = new byte[8];
        try (
                BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(str));){
            long t1 = System.currentTimeMillis();
            while (bufferedInputStream.read(bytes) != -1);
            long t2 = System.currentTimeMillis();
            bufferedInputStream.close();
            return t2 - t1;
        }
        /********** End **********/

    }
    public Long inputStream() throws IOException{
        // 请在Begin-End间编写完整代码
        /********** Begin **********/
        // 使用文件字节流读取给定文件,并返回读取时间
        byte[] bytes = new byte[8];
        try (
                FileInputStream fileInputStream = new FileInputStream(str);){
            long t1 = System.currentTimeMillis();
            while (fileInputStream.read(bytes) != -1);
            long t2 = System.currentTimeMillis();
            fileInputStream.close();
            return t2 - t1;
        }
        /********** End **********/
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

摸鱼的三金

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值