字节流、字符流复制文件
字节流、字符流复制文件
注意:先读(FileInputStream)后写(FileOutputStream)
字节流复制文件代码:
/* 字节流复制文件*/
public class CopyArr {
public static void main(String[] args) {
long s = System.currentTimeMillis();
//
FileInputStream fis =null;
FileOutputStream fos=null;
try {
fis = new FileInputStream("c:\\liu.mp4");
fos = new FileOutputStream("d:\\liu.mp4");
// 定义字节数组
byte[] b = new byte[1024*10];
// 读取操作
int len = 0;
while((len=fis.read(b))!=-1){
fos.write(b,0,len);
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(fos!=null){
fos.close();
}
} catch (Exception e2) {
throw new RuntimeException("释放资源失败");
}finally{
if(fis!=null){
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException("释放资源失败");
}
}
}
}
long e = System.currentTimeMillis();
System.out.println(e-s);
}
}
字符流复制文件代码:
/*字符流复制文件*/
public class Copy {
public static void main(String[] args) {
FileReader fileReader=null;
FileWriter file=null;
try {
fileReader = new FileReader("C:\\1.txt");
file = new FileWriter("d:\\1.txt");
//定义字符数组
char[] c = new char[1024];
//读取操作
int len = 0;
while((len=fileReader.read(c))!=-1){
file.write(c, 0, len);
file.flush();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(file!=null){
try {
file.close();
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException("关闭失败");
}finally{
if(fileReader!=null){
try {
fileReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
throw new RuntimeException("关闭失败");
}
}
}
}
}
}
}