文件字符流(FileWriter、FileReader)实现复制:
package cn.tedu.text;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileCopyText {
public static void main(String[] args) throws IOException {
//声明流对象并且赋值为null
FileReader reader=null;
FileWriter writer=null;
try{
//进行真正的初始化
//指定从哪读取数据
reader=new FileReader("F:\\1.txt");
writer=new FileWriter("F:\\test\\1.txt");
//读取数据
//自建缓冲区---数组
char[] cs=new char[1024*1024*10];
int len=-1;
while ((len=reader.read(cs))!=-1){
//边读边写
writer.write(cs,0,len);
}
//冲刷数据
writer.flush();
} catch (IOException e) {
}finally {
//保证流对象真正初始化之后才能进行关流
if(writer!=null)
try{
writer.close();
}catch (IOException e){
e.printStackTrace();
}finally {
//无论关流成功与否都要把对象置为null
writer=null;
}
if(reader!=null)
try{
reader.close();
}catch (IOException e){
e.printStackTrace();
}finally {
//无论关流成功与否都要把对象置为null
reader=null;
}
}
}
}
文件字节流(FileInputStream、FileOutputStream)实现复制:
/*
文件复制的步骤:
1.创建一个字节输入流对象,构造方法中绑定要读取的数据源
2.创建一个字节输出流对象,构造方法中绑定要写入的目的地
3.使用字节输入流对象中的方法read读取文件
4.使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中
5.释放资源
*/
package cn.tedu.text;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
//通过字节流来复制文件
public class CopyFileText {
public static void main(String[] args) throws IOException {
//返回从1970年到此时此刻到的毫秒值
long start=System.currentTimeMillis();
//创建文件字节输入流
FileInputStream fis=new FileInputStream("C:\\Program Files\\JetBrains");
//创建文件字节输入流对象
FileOutputStream fos=new FileOutputStream("C:\\JetBrains");
//读取数据
//自建缓冲区
byte[] bs=new byte[1024*1024*500];//500MB
int len=-1;
while ((len= fis.read(bs))!=-1){
//边读边写
fos.write(bs,0,len);
}
//关流
fis.close();
fos.close();
long end=System.currentTimeMillis();
//程序执行时间(毫秒值)
System.out.println(end-start);
}
}
本文介绍了如何使用Java中的FileWriter和FileReader字符流,以及FileInputStream和FileOutputStream字节流,来实现文件的复制操作。详细阐述了两种不同方式的实现过程。

447

被折叠的 条评论
为什么被折叠?



