【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】

这篇具有很好参考价值的文章主要介绍了【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

示例1

扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件

【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】,JavaEE初阶,c语言,java,python

import java.io.*;
import java.util.*;
public class SearchDelete {
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要扫描的根目录(绝对路径 OR 相对路径): ");
        String rootDirPath = scanner.next();
        File rootDir = new File(rootDirPath);
        if (!rootDir.isDirectory()) {
            System.out.println("您输入的根目录不存在或者不是目录,退出");
            return;
       }
        System.out.print("请输入要找出的文件名中的字符: ");
        String token = scanner.next();
        List<File> result = new ArrayList<>();
        // 因为文件系统是树形结构,所以我们使用深度优先遍历(递归)完成遍历
        scanDir(rootDir, token, result);
        System.out.println("共找到了符合条件的文件 " + result.size() + " 个,它们分别
是");
        for (File file : result) {
            System.out.println(file.getCanonicalPath() + "   请问您是否要删除该文
件?y/n");
            String in = scanner.next();
            if (in.toLowerCase().equals("y")) {
                file.delete();
           }
       }
   }
    private static void scanDir(File rootDir, String token, List<File> result) {
        File[] files = rootDir.listFiles();
        if (files == null || files.length == 0) {
            return;
       }
        for (File file : files) {
            if (file.isDirectory()) {
                scanDir(file, token, result);
           } else {
                if (file.getName().contains(token)) {
                    result.add(file.getAbsoluteFile());
               }
           }
       }
   }
}

示例2

进行普通文件的复制

【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】,JavaEE初阶,c语言,java,python

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

public class FileCopy {
    public static void main(String[] args) {
        // 实现文件复制.
        // 1. 先输入要复制哪个文件(源文件), 以及把这个文件复制到哪里去(目标文件)~~
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入源文件: ");
        // srcFile 形如 d:/cat.jpg
        File srcFile = new File(scanner.next());
        System.out.println("请输入目标文件: ");
        // destFile 形如 d:/cat2.jpg
        File destFile = new File(scanner.next());
        if (!srcFile.isFile()) {
            System.out.println("输入的源文件有误!");
            return;
        }
        if (!destFile.getParentFile().isDirectory()) {
            System.out.println("输入的目标文件有误!");
            return;
        }
        // 2. 打开源文件, 按照字节读取内容, 依次写入到目标文件中.
        try (InputStream inputStream = new FileInputStream(srcFile);
             OutputStream outputStream = new FileOutputStream(destFile)) {
            // 读 src 的每个字节, 写入到 dest 中.
            while (true) {
                int ret = inputStream.read();
                if (ret == -1) {
                    break;
                }
                outputStream.write(ret);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

示例3

扫描指定目录,并找到名称或者内容中包含指定字符的所有普通文件(不包含目录)

注意:我们现在的方案性能较差,所以尽量不要在太复杂的目录下或者大文件下实验
【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】,JavaEE初阶,c语言,java,python文章来源地址https://www.toymoban.com/news/detail-576608.html

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;

public class Demo8 {
    public static void main(String[] args) throws IOException {
        // 1. 输入路径和要查询的关键词
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要扫描的路径: ");
        File rootDir = new File(scanner.next());
        System.out.println("请输入要查询的词: ");
        String toFind = scanner.next();

        // 2. 递归的扫描目录.
        scanDir(rootDir, toFind);
    }

    private static void scanDir(File rootDir, String toFind) throws IOException {
        File[] files = rootDir.listFiles();
        if (files == null) {
            return;
        }
        for (File f : files) {
            if (f.isDirectory()) {
                scanDir(f, toFind);
            } else {
                checkFile(f, toFind);
            }
        }
    }

    private static void checkFile(File f, String toFind) throws IOException {
        // 1. 先检查文件名
        if (f.getName().contains(toFind)) {
            System.out.println(f.getCanonicalPath() + " 文件名中包含 " + toFind);
        }
        // 2. 再检查文件内容
        try (InputStream inputStream = new FileInputStream(f)) {
            StringBuilder stringBuilder = new StringBuilder();
            Scanner scanner = new Scanner(inputStream);
            // 这个地方需要按行读取了~~
            while (scanner.hasNextLine()) {
                stringBuilder.append(scanner.nextLine() + "\n");
            }
            if (stringBuilder.indexOf(toFind) > -1) {
                System.out.println(f.getCanonicalPath() + " 文件内容包含 " + toFind);
            }
        }
    }
}

到了这里,关于【当学C语言 或者 java 或者 python时 是不是IO文件操作部分很难学懂?这三道例题帮你理解IO】【IO三道例题】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • python制作简单版天天酷跑,是不是你平日里摸鱼小游戏呀

    前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 天天酷跑是一款轻松好玩、简单时尚的跑酷类手机游戏。 那我们能不能用python模拟出这个一个游戏呢? 答案当然是可以的,今天我就给大家带来简易版的天天酷跑小游戏 开发环境: 版 本: python 3.8 编辑器:pycharm 2021.2 准备事

    2024年02月04日
    浏览(43)
  • Python使用Selenium库如何绕过Cloudflare验证,网页请确认你是不是机器人

    大家好,我是淘小白~ 前段时间使用selenium库写chatGPT的脚本,遇到过一个问题,那就是cloudflare的机器验证,让你点击确认不是机器人,这个问题最后找人解决掉了,我也是百度了很久没找到答案,B站找到的一个UP主,只要报名人家的课程才会给方法,所以,下面就把这个问题

    2024年02月05日
    浏览(90)
  • Python--练习:使用while循环求1~100之间,所有偶数的和(涉及if判断是不是偶数)

    案例: 求1~100之间,所有偶数的和 思考: 先套用原有 基础模式 ,之后再思考其他的。 其实就是在之前文章 Python--练习:使用while循环求1..100的和-CSDN博客 的基础上,再判断如果获取到里面的全部偶数,相加就行了。 while循环的基本语法: 对于循环 次数已知 的情况,建议

    2024年02月03日
    浏览(44)
  • 二叉树是不是树?

    先说明,以下结论都是正确的 1. 树和二叉树是两种不同的树形结构,二叉树不是树的特殊形式。 2. 二叉树也不是 度为 2的有序树。 一个一个解释。 在23版《王道》考研数据结构关于树和二叉树的框架图如下: 很明显可以推断:树是树,二叉树是二叉树,树并没有包含二叉树

    2024年02月12日
    浏览(43)
  • 运维是不是没有出路了?

    瑞典马工的​​《是时候让运维集体下岗了》一出,就让运维人为之一颤,​人人自危。文章开篇就提到:​​明人不说暗话,在云原生和DevOps成熟的今天,运维作为一个岗位和团队已经完成了历史任务,应该退出舞台了。文中​观点令人振聋发聩,虽然我们都知道,随着科

    2023年04月15日
    浏览(38)
  • 如何辨别ChatGPT是不是真的

    随着ChatGPT爆红,国内陆续出现了几个所谓的“ChatGPT 反向代理站点”,乍一试回答似乎还挺靠谱,但它们真的是ChatGPT吗?本文以其中一个站点为例,对其真伪进行辨别。 其实最多只需要问两个问题,基本上就可以做出判断了。 1.你是谁? 2.列举两条2023年发生的新闻   而Ch

    2024年02月11日
    浏览(46)
  • 是不是要学习unity了?

    Unity是一款由Unity Technologies开发的跨平台游戏开发引擎。它可以用来创建2D和3D游戏,支持多种平台包括Windows、Mac、Android、iOS和主流的游戏主机,如PlayStation和Xbox。 Unity提供了丰富的工具和资源,包括可视化的编辑器、动画系统、物理引擎、音频系统等,使开发者能够快速构

    2024年02月04日
    浏览(44)
  • 人脸检测是不是目标检测呢?

    人脸检测是不是目标检测呢? 人脸识别和目标检测都是计算机视觉领域的重要应用之一,但它们的应用场景和方法有所不同。 人脸识别是一种通过计算机技术对照片、视频等图像中的人脸进行识别的技术。人脸识别一般分为两个步骤: 人脸检测和人脸识别 。人脸检测是指在

    2024年02月06日
    浏览(52)
  • PostgreSQL 是不是大小写敏感

    如果你踩过 MySQL 的大坑的话就知道:MySQL 在 Windows 下不区分大小写,但在 Linux 下默认是区分大小写。 如果你稍加不注意就会出现在本机开发的程序运行一切正常,发布到服务器行就出现表名找不到的问题。 这是我们前一个项目遇到的巨大问题,开发是在 Windows 下进行,但是

    2024年01月25日
    浏览(53)
  • AIGC是不是有点虎头蛇尾

    一、前言 2023年上半年AI与AIGC真是风风火火,不管是技术界还是资本界还是其他任何领域,如果你不知道chatgpt和AIGC,你就是个跟不上时代的人儿。如今大半年过去了,好像这个chatgpt和AIGC比没有太多的人提起,是不是有点虎头蛇尾了呢。了解本博主的人应该知道,本博主并不

    2024年02月09日
    浏览(50)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包