程序填空题:完善程序,实现文件的复制功能。要求:在数字标示和注释符(//)的前面,填入合适代码;并且不要删除数字标示和注释符://(数字)。 import java.io.*; public class FileStream1{ public static void main(String args []) { try { File inFile = new File("file1.txt"); //指定源文件 /*以file2.txt文件作为构造方法的参数,在(1)所在的语句创建File类的对象*/ //(1)指定目标文件 /*以文件对象作为数据源,在(2)创建字节输入流对象fis*/ //(2); FileOutputStream fos = new FileOutputStream(outFile); int c; /*逐字节从源文件中输入;补充(3)所在语句“_____”处的代码,依次读取字节*/ while ((c = fis._____)!=-1) //(3) /*逐字节输出到fos流;补充(4)所在语句的代码,依次写字节*/ //(4); fis.close(); fos.close(); }catch (FileNotFoundException e) { System.out.println("FileStreamsTest: "+e); /*补充(5)所在语句“_____”处的代码*/ }catch(________ e){//(5) System.out.println("FileStreamsTest: "+e); } } } 提示: (1)文件类File的构造方法有多种重载形式,其构造的对象即可表示文件,也可表示文件夹;此外,构造方法只能与new运算符搭配使用。 (2)Java中所有输入数据流都拥有读数据的成员方法read(); (3)Java中所有输出数据流都拥有写读数据的成员方法write(); (4)Java中输入输出流的成员方法基本上都会抛出同一种异常。
时间: 2024-03-06 12:49:25 浏览: 205
以下是完善后的代码:
```java
import java.io.*;
public class FileStream1 {
public static void main(String args[]) {
try {
File inFile = new File("file1.txt"); // 指定源文件
File outFile = new File("file2.txt"); // (1) 指定目标文件
FileInputStream fis = new FileInputStream(inFile); // (2) 以文件对象作为数据源,创建字节输入流对象fis
FileOutputStream fos = new FileOutputStream(outFile);
int c;
while ((c = fis.read()) != -1) { // (3) 逐字节从源文件中输入
fos.write(c); // (4) 逐字节输出到fos流
}
fis.close();
fos.close();
} catch (FileNotFoundException e) {
System.out.println("FileStreamsTest: " + e);
} catch (IOException e) { // (5) Java中输入输出流的成员方法基本上都会抛出同一种异常
System.out.println("FileStreamsTest: " + e);
}
}
}
```
在上述代码中,我们首先指定了源文件`file1.txt`和目标文件`file2.txt`,并使用`FileInputStream`和`FileOutputStream`创建了相应的输入输出流对象。然后,我们使用`while`循环逐字节从源文件中输入,并逐字节输出到目标文件中。最后,我们关闭了输入输出流对象。
需要注意的是,我们在`catch`语句中捕获了`FileNotFoundException`和`IOException`两种异常。其中,`FileNotFoundException`是指定的文件不存在或无法访问;`IOException`则是输入输出流可能会抛出的异常类型。
阅读全文