Java.io实现文件的复制
需求:对一个文件进行复制。
方法:
实现文件的复制,实际上就是读文件+写文件,即从一个文件中读取数据然后写到另外一个文件
读文件:
需求:往文件中写数据
读数据–输出流–FileReader
FileReader的构造方法
FileReader(String fileName)
输入流读入数据步骤
A:创建输入流对象
B:调用输入流对象的读数据方法
C:释放资源
写文件:
需求:往文件中写数据
写数据–输出流–FileWriter
FileWriter的构造方法
FileWriter(String fileName)
输出流写数据步骤
A:创建输出流对象
B:调用输出流对象的写数据方法
C:释放资源
复制文件
需求:复制文件
读数据--输入流--FileWriter--写文件--输入流--FileReader
FileReader的构造方法
FileReader(String fileName)
FileWriter的构造方法
FileWriter(String fileName)
复制文件步骤
A:创建输入流对象
B:创建输出流对象
C:调用输入流对象的读数据方法
D:调用输出流对象的写数据方法
C:释放资源
复制文件源代码:
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 需求:
* 把项目路径下的FileWriterDemo.java中的内容复制到项目路径下的Copy.java中
*
* 数据源
* FileWriterDemo.java--读数据--FileReader
* 目的地:
* Copy.java--写数据--FileWriter
* */
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
//输入流对象,假设a.java存在且在项目目录下
FileReader fr = new FileReader("a.java");
//输出流对象
FileWriter fw = new FileWriter("Copy.java");
//读数据到输入流对象,然后写到输出流对象
int ch;
while((ch = fr.read())!=-1) {
fw.write(ch);
}
//刷新,并释放资源
//调用close()时会自动调用flush()进行数据刷新,把数据从缓冲区写到硬盘文件
fw.close();
fr.close();
}
}