一、需求
1、将D盘的123.txt拷贝到E盘中。
二、Java文件的拷贝思路
1、创建文件
2、创建输入流
3、创建输出流
4、循环读写
5、关闭资源
三、代码实现
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 需求:将D盘的123.txt拷贝到E盘中
* @author LSG
*
*/
public class FileCopy {
public static void main(String[] args) {
/*
* 1、创建文件:读的文件和写的文件
*/
//创建读的文件对象
File f1=new File("D:\\123.txt");
//创建写的文件对象
File f2=new File("E:\\123.txt");
/*
* 2、创建输入流、输出流、循环读写
*/
//对象初始化为空
FileInputStream fin=null;
FileOutputStream fout=null;
try {
//创建输入流fin对象
fin=new FileInputStream(f1);
//创建输出流fout对象
fout=new FileOutputStream(f2);
/*
* 循环读写
*/
//创建计数器data,用于记录读写的个数
int data=0;
//通过fin对象调用read()方法循环读取D盘中的123.txt文件
while((data = fin.read())!=-1)
{
//通过fout对象调用write()方法循环往E盘中123.txt文件循环写入数据
fout.write(data);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
System.out.println("文件拷贝完成...");
fin.close();
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
四、结果
五、拓展
(一)需求
将D盘的123.txt剪切到E盘中。
(二)分析
与拷贝基本一致,唯一不一样的就是当关闭读写流之后进行删除文件。即
fin.close();
fout.close();
/*
* 当在E盘中写完D盘123.txt文件的数据后,删除f1对象中的文件。即 *把D盘中123.txt文件剪切到E盘。
* 注意:必须当输入输出流关闭之后才能删除文件
*/
f1.delete();
(三)源代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* 需求:将D盘的123.txt拷贝到E盘中
* @author LSG
*
*/
public class FileCopy {
public static void main(String[] args) {
/*
* 1、创建文件:读的文件和写的文件
*/
//创建读的文件对象
File f1=new File("D:\\123.txt");
//创建写的文件对象
File f2=new File("E:\\123.txt");
/*
* 2、创建输入流、输出流、循环读写
*/
//对象初始化为空
FileInputStream fin=null;
FileOutputStream fout=null;
try {
//创建输入流fin对象
fin=new FileInputStream(f1);
//创建输出流fout对象
fout=new FileOutputStream(f2);
/*
* 循环读写
*/
//创建计数器data,用于记录读写的个数
int data=0;
//通过fin对象调用read()方法循环读取D盘中的123.txt文件
while((data = fin.read())!=-1)
{
//通过fout对象调用write()方法循环往E盘中123.txt文件循环写入数据
fout.write(data);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
fin.close();
fout.close();
/*
* 当在E盘中写完D盘123.txt文件的数据后,删除f1对象中的文件。即把D盘中123.txt文件剪切到E盘。
* 注意:必须当输入输出流关闭之后才能删除文件
*/
f1.delete();
System.out.println("文件剪切 完成...");
} catch (IOException e) {
e.printStackTrace();
}
}
}
}