程序填空: App16_1可以测试Java lO操作过程中输入字节流的操作的执行时间,readBySingleByte方法每次读取1个字节readByBuffer也是每次读取1个字节,但是通过缓冲区操作通过两个方法读取同一个文件test1.mp3,最后输出两个方法执行的时间,请补充程序。 public class App16 1[ public static void main(String args[]) [ Stringpath=App16_1.class.getResource("").getPath(6 String sourcefle = path+"test.mp3";//test.mp3文件路径 longtimeSystem.currentTimeMillis();//获取系统时间戳,毫秒为单位 readBySingleByte((1) path+"test1.mp3");//调
时间: 2024-02-15 09:02:58 浏览: 108
java_jsp项目源码_+sql操作系统教学网站设计(论文+程序).rar
好的,这里是程序填空的结果:
```
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class App16_1 {
public static void main(String args[]) {
String path = App16_1.class.getResource("").getPath();
String sourceFile = path + "test.mp3";
long startTime = System.currentTimeMillis();
readBySingleByte(sourceFile, path + "test1.mp3");
long endTime = System.currentTimeMillis();
System.out.println("readBySingleByte time: " + (endTime - startTime) + "ms");
startTime = System.currentTimeMillis();
readByBuffer(sourceFile, path + "test2.mp3");
endTime = System.currentTimeMillis();
System.out.println("readByBuffer time: " + (endTime - startTime) + "ms");
}
public static void readBySingleByte(String sourceFile, String targetFile) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(sourceFile);
fos = new FileOutputStream(targetFile);
int data;
while ((data = fis.read()) != -1) {
fos.write(data);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void readByBuffer(String sourceFile, String targetFile) {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(sourceFile);
fos = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024];
int length;
while ((length = fis.read(buffer)) != -1) {
fos.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fis != null) {
fis.close();
}
if (fos != null) {
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
```
在上面的代码中,我填入了以下内容:
1. `(String sourceFile, String targetFile)`:这是 `readBySingleByte` 方法的参数列表,用来指定源文件和目标文件的路径。
2. `startTime`:这是在执行 `readBySingleByte` 方法之前记录的时间戳,用来计算方法执行的时间。
3. `readBySingleByte(sourceFile, path + "test1.mp3")`:这是调用 `readBySingleByte` 方法来读取文件的操作。
4. `endTime`:这是在执行 `readBySingleByte` 方法之后记录的时间戳,用来计算方法执行的时间。
5. `System.out.println("readBySingleByte time: " + (endTime - startTime) + "ms");`:这是输出 `readBySingleByte` 方法执行时间的语句。
6. `readByBuffer(sourceFile, path + "test2.mp3")`:这是调用 `readByBuffer` 方法来读取文件的操作。
7. `System.out.println("readByBuffer time: " + (endTime - startTime) + "ms");`:这是输出 `readByBuffer` 方法执行时间的语句。
这样,程序就可以测试 Java IO 操作过程中输入字节流的操作的执行时间,通过缓冲区操作通过两个方法读取同一个文件 test1.mp3,最后输出两个方法执行的时间。
阅读全文