文件流
- 文件流是用来对文件进行读写的流类,主要包括 FileReader 类和 FileWriter 类;
1. FileReader 类
- FileReader 类创建了一个可以读取文件内容的 Reader 类;
- 它最常用的构造方法如下:
FileReader(String filePath)
;
FileReader(File fileObj)
;
- 这两个方法都能引发一个 FileNotFoundException 异常。 在这里 filePath 是一个文件的完整路径, fileObj 是描述该文件的 File 对象;
- java.io.FileReader,详见:Class FileReader;
2. FileWriter 类
- FileWriter 创建一个可以写文件的 Writer 类;
- 它最常用的构造方法如下:
FileWriter(String filePath)
;
FileWriter(String filePath, boolean append)
;
FileWriter(File fileObj)
;
- 它们可以引发 IOException 或 SecurityException 异常;
- 在这里 filePath 是文件的绝对路径, fileObj 是描述该文件的 File 对象,如果 append 为 true,输出是附加到文件尾的。FileWriter 类的创建不依赖于文件存在与否。在创建文件之前, FileWriter 将在创建对象时打开它来作为输出。如果试图打开一个只读文件,将引发一个 IOException 异常;
- java.io.FileWriter,详见:Class FileWriter;
3. 应用案例
import java.io.*;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws IOException {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入源文件名和目的文件名,中间用空格分隔");
String s = scanner.next();
String d = scanner.next();
File file1 = new File(s);
File file2 = new File(d);
if (!file1.exists()) {
System.out.println("被复制的文件不存在");
System.exit(1);
}
InputStream input = new FileInputStream(file1);
OutputStream output = new FileOutputStream(file2);
if ((input != null) && (output != null)) {
int temp = 0;
while ((temp = input.read()) != (-1))
output.write(temp);
}
input.close();
output.close();
System.out.println("文件复制成功!");
}
}