任务描述
本关任务:分别使用字节缓冲输入流(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 **********/
}
}