文件操作(进行文件复制)

这篇具有很好参考价值的文章主要介绍了文件操作(进行文件复制)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

关于文件的读取和写入推荐看读取文件和写入文件操作

题目描述

        输入源文件的路径和目标文件的路径,将源文件中的数据全部复制到目标文件中

代码展示

package 文件操作;

import java.io.*;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: wuyulin
 * Date: 2023-08-07
 * Time: 14:00
 */
//完成文件复制
//输入源文件的路径和目标文件的路径,将源文件中的数据全部复制到目标文件中
public class Demo6 {
    public static void main(String[] args) throws IOException {
        Scanner scanner=new Scanner(System.in);
        //输入源文件的路径
        System.out.print("请输入源文件的路径");
        //通过用户输入的路径实例化一个File对象
        File beginFile=new File(scanner.next());
        //检测源文件是否存在
        if(!beginFile.isFile()){
            return;
        }
        System.out.print("请输入目标文件的路径");
        //通过用户输入的路径实例化一个File对象
        File endFile=new File(scanner.next());
        //检测目标文件所在的目录是否存在(文件的上一级)
        //即使目标文件不存在,再向文件中输入数据的时候也会自动创建,所以只要关注测目标文件所在的目录是否存在即可
        if(!endFile.getParentFile().isDirectory()){
            return;
        }
        fileCopy(beginFile,endFile);
    }

    //将源文件beginFile中的数据拷贝到目标文件endFile中
    private static void fileCopy(File beginFile,File endFile) throws IOException {
        //通过try(){}的方法来打开文件可以在执行完{}中的程序后自动关闭文件
        try(InputStream inputBegin=new FileInputStream(beginFile);
            OutputStream outputEnd=new FileOutputStream(endFile)){
            while (true){
                byte[]bytes=new byte[1024];
                int n=inputBegin.read(bytes);
                //监视一下每次循环所读取到的字节个数
                System.out.println(n);
                //当n为-1代表源文件中的数据已经全部被读取出来
                if(n==-1){
                    return;
                }
                //当n不为-1就将数组中的字节数据全部输出到目标文件中
                //参数表示将数组bytes中从下标0开始的n个数据输出到文件中
                outputEnd.write(bytes,0,n);
            }
        }
    }
}

        1.通过用户输入的路径实例化一个源文件的文件对象和目标文件的文件对象,判断文件路径是否是合法的文件路径,源文件由于要提供数据,所以必须得存在,而目标文件即使不存在,在写入数据时也会在对应的目录中自动创建出该文件,但要保证目标文件所在的目录的路径是正确的

        2.拷贝源文件中的数据到目标文件中,实际上就是读取源文件中的数据到字节数组中,读取满数组后将数组中的数据写入目标文件中,一直循环执行,直到源文件中的所有数据都被读取出来

        3.读取和写入分为了字符流和字节流,但我们在复制文件时要使用字节流,因为字节流进行复制可以满足于所有文件进行复制文章来源地址https://www.toymoban.com/news/detail-632513.html

到了这里,关于文件操作(进行文件复制)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【头歌】——数据分析与实践-基于Python语言的文件与文件夹管理-文本 文件处理-利用csv模块进行csv文件的读写操作

    第1关 创建子文件夹 第2关 删除带有只读属性的文件 第3关 批量复制文件夹中的所有文件 未通过本题,如果您通过了本题欢迎补充到评论区,有时间我会整理进来 第1关 读取宋词文件,根据词人建立多个文件 第2关 读取宋词文件,并根据词人建立多个文件夹 第3关 读取宋词文

    2024年01月25日
    浏览(68)
  • Java开发手册中为什么不建议在for循环中使用“+“进行字符串操作

    java开发手册中对于循环体中进行字符串的拼接要求如下: 【推荐】循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。 说明:下例中,反编译出的字节码文件显示每次循环都会 new 出一个 StringBuilder 对象,然后进行 append操作, 最后通过 toString 方法返回

    2024年02月08日
    浏览(52)
  • Ubuntu系统进行复制粘贴文件显示没有权限的解决办法

    Ctrl + alt + T打开终端 输入命令 sudo nautilus 然后就可以打开一个不需要管理员权限的界面,可以直接复制粘贴 亲测有效!!! 借鉴于博客:https://blog.csdn.net/forever_008/article/details/104238669 1.删除有权限的文件方式 rm命令 删除文件! rm空格要删除文件名 创建文件: touch a.txt 创建文

    2023年04月14日
    浏览(50)
  • 【c语言】文件复制原理

    创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡𖥦)!! 主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步! 🔥c语言系列专栏:【c语言】全部知识点总结 🔥 给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ 本文

    2024年02月05日
    浏览(29)
  • 如何从多个文件夹内转移全部文件(忽略文件夹的结构)(进行复制)(再打包)

    首先,需要用到的这个工具: 百度 密码:qwu2 蓝奏云 密码:2r1z 04文件夹里面有只有1个名称为\\\"1\\\"的文件夹,“1”里面有“2”,“2”有“3”,“3”有“4”,从“1”开始,都有5个兔兔的图片,这是“1”里面的文件夹结构,现在要做的就是忽略文件夹结构,提取出全部的兔兔

    2023年04月10日
    浏览(95)
  • 🔥🔥Java开发者的Python快速进修指南:文件操作

    Python提供的文件操作相对于Java来说,确实简单方便许多。不仅操作简单,代码可读性也相对较高。然而,我们需要注意的不仅仅是文件操作的简单性,还有文件操作的各种模式。在Java中,我们并不经常使用像Python中那样的操作模式。 另外,我们还需要注意文件指针的移动。

    2024年02月05日
    浏览(77)
  • 解决:VMware虚拟机中的kali linux,无法与物理主机进行互相复制粘贴操作

    打开VMware,将之前挂起的kali虚拟机恢复运行后,往往会发现:kali linux虚拟机,无法与物理主机进行双向(甚至单向也不行)复制粘贴操作。 而通过搜索网上相关资料,进行重新安装vmtools程序等操作,均无果。 sudo apt-get install open-vm-tools-desktop 这时候: 要么只能借助VMware软件

    2024年02月11日
    浏览(56)
  • c# 操作剪切板,复制文本或文件

     1.将文本内容放入剪切板          Clipboard.SetDataObject(\\\"要复制的内容\\\");//复制内容到粘贴板 2.将文本内容从剪切板取出               IDataObject iData = Clipboard.GetDataObject();           if (iData.GetDataPresent(DataFormats.Text))            {            label1.Text = (String)iData.GetData(D

    2023年04月08日
    浏览(39)
  • Linux对文件夹操作(复制,移动)

    将vue 文件夹下面的所有文件,复制到同目录下vue-copy文件夹下面 -a:相当于 -d、-p、-r 选项的集合,这几个选项我们一一介绍; -d:如果源文件为软链接(对硬链接无效),则复制出的目标文件也为软链接; -i:询问,如果目标文件已经存在,则会询问是否覆盖; -l:把目标文

    2024年02月15日
    浏览(48)
  • Android文件基本操作(创建文件(夹)、复制文件(夹)、设置文件访问权限)

    将src目录下的info.txt复制到dst目录并重命名为info_dst.txt 1、 方法一:调用java.nio.file.Files.copy() 2、方法二:使用输入输出流 1、删除文件 只需要调用File的delete方法即可删除指定文件 2、删除文件夹 如果文件夹不为空,调用delete方法是无法删除文件夹的。需要先删除文件夹中包含

    2024年02月01日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包