Java实现文件复制
IO操作
原理:利用IO流,FileInputStream和FileOutputStream两个类中的方法对文件进行读和写的操作。
步骤
- 创建一个字节输入流对象,构造方法中绑定要读取的数据源
- 创建一个字节输出流对象,构造方法中绑定要写入的目的地
- 使用字节输入流对象中的方法read读取文件
- 使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
- 释放资源
一次读取一个字节写入一个字节的方式
代码
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) throws IOException {
//创建一个字节输入流对象,构造方法中绑定要读取的数据源
FileInputStream fis = new FileInputStream("src/a.txt");
//创建一个字节输出流对象,构造方法中绑定要写入的目的地
FileOutputStream fos = new FileOutputStream("d:\\a.txt");
//一次读取一个字节写入一个字节的方式
//使用字节输入流对象中的方法read读取文件
int len = 0;
while ((len = fis.read())!=-1){
//使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
fos.write(len);
}
//释放资源(先关闭写的,后关闭读的,如果写完了,一定读完了)
fos.close();
fis.close();
}
}
使用数组缓冲读取多个字节,写入多个字节
代码
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopy {
public static void main(String[] args) throws IOException {
//创建一个字节输入流对象,构造方法中绑定要读取的数据源
FileInputStream fis = new FileInputStream("src/a.txt");
//创建一个字节输出流对象,构造方法中绑定要写入的目的地
FileOutputStream fos = new FileOutputStream("d:\\a.txt");
//使用数组缓冲读取多个字节,写入多个字节
byte[] bytes = new byte[1024];
//使用字节输入流对象中的方法read读取文件
int len = 0;
while ((len = fis.read(bytes))!=-1){
//使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
fos.write(bytes,0,len);
}
//释放资源(先关闭写的,后关闭读的,如果写完了,一定读完了)
fos.close();
fis.close();
}
}
使用数组缓冲读取多个字节,写入多个字节的方式,要比一次读取一个字节写入一个字节的方式快