你不知道的Java学习笔记17--Java文件的拷贝和剪切

一、需求

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盘中写完D123.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();
            }
        }
    }
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值