Java文件流练习

news2024/12/23 7:16:38

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

import java.io.File;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
     Scanner scanner=new Scanner(System.in);
     //先让用户输入一个目录
        System.out.println("请输入你要扫描的目录");
        String path=scanner.next();
        File file=new File(path);
        //验证输入合法性
        if(!file.isDirectory()){
            System.out.println("输入文件路径有误");
            return;
        }
        //让用户输入查询关键字
        System.out.println("请输入查询的关键字");
        String word=scanner.next();
        //开始扫描
        scanDir(file,word);
    }

    private static void scanDir(File file, String word) {
        if(file==null)return;
        //先列出file的目录和文件
        File[] path=file.listFiles();
        for (File f:path) {
            //日志
            System.out.println(f.getAbsolutePath());
            if(f.isFile()){
                //是文件,看看有没有包含关键字
                if(f.getName().contains(word)){
                    System.out.println("当前扫描的文件是"+f.getAbsolutePath()+"删除输入Y,不删除输入N");
                    String user=new Scanner(System.in).next();
                    if(user.equals("Y")||user.equals("y")){
                        f.delete();
                        System.out.println("删除成功");
                    }
                    else System.out.println("删除失败");
                }
            }
            else {
                scanDir(f,word);
            }
        }
    }
}

 

2  进行普通文件的复制

 

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

//文件流操作
public class Main {
    public static void main(String[] args) throws IOException {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入要复制的文件(绝对路径 OR 相对路径): ");// E:\Test\bbb\222.txt
        String souPath=scanner.next();
        File soutfile=new File(souPath);
        if(soutfile==null)return;
        if(!soutfile.exists()){
            System.out.println("文件不存在,请确认路径是否正确");
            return;
        }
        if(!soutfile.isFile()){
            System.out.println("输入有误");
            return;
        }
        System.out.println("请输入要复制到的目标目录");//E:\Test\aaa\222.txt
        String destPath=scanner.next();
        File destFile=new File(destPath);
        if(destFile.exists()){//不能直接复制到目录下,要输入目录+目标文件名字
            if(destFile.isDirectory()){
                System.out.println("目标路径已经存在,并且是一个目录,请确认路径是否正确");
                return;
            }
        }
        if(destFile.isFile()){
            System.out.println("目标文件已经存在");
            return;
        }
        try(InputStream is = new FileInputStream( soutfile)) {
            try(OutputStream os=new FileOutputStream(destFile)){
                Scanner sc=new Scanner(is);
                PrintWriter writer=new PrintWriter(destFile);
                writer.println(sc);
                writer.flush();
            }
        }
        System.out.println("复制成功");
    }
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620788.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业相机和镜头参数和选型

工业相机和镜头参数和选型 文章目录 工业相机和镜头参数和选型前言一、相机参数解释和选型1.相机参数1.1快门-shutter1.2曝光-exposure1.3增益-gain1.4 感光芯片类型(CCD/CMOS)1.5 感光芯片(靶面)尺寸1.6 分辨率1.7 像元尺寸1.8 帧…

海康NVR接入视频监控平台部分视频浏览失败,显示503错误的解决办法

目录 一、问题概述 二、问题排查 (一)排查思路介绍 (二)平台排查 1、确定排查的思路 2、信令控制模块的排查 3、媒体转发模块的排查 (三)客户设备排查 1.观察正常视频的设置 2. 调查问题原因 三…

crossover和wine哪个好 wine和crossover有什么本质区别 苹果电脑运行Windows crossover24

CrossOver是Wine的延伸产品,CrossOver可以简单的理解为类虚拟机,那么wine是什么,许多小伙伴就可能有些一知半解。CrossOver和wine哪个好,wine和CrossOver有什么本质区别呢?下文将围绕着这两个问题展开。 一、CrossOve…

【C++】---STL之list详解

【C】---STL之list详解 一、了解list的基本信息二、成员函数1、构造2、迭代器3、empty()4、size()5、front()6、back()7、push_front()8、pop_front()9、push_back()10、pop_back()11、insert()12、erase()13、swap()14、sort()15、reverse() 一、了解list的基本信息 1、库里面…

各平台奇怪问题备忘录

微信小程序 小程序报错Page 页面路径 has not been register yet 描述:uniapp做微信小程序开发时,新增某页面后,小程序跳转该页面报错Page 页面路径 has not been register yet 已知:page.json已添加该页面,小程序a…

如何优雅地Spring事务编程

本文已收录至Github,推荐阅读 👉 Java随想录 微信公众号:Java随想录 在开发中,有时候我们需要对 Spring 事务的生命周期进行监控,比如在事务提交、回滚或挂起时触发特定的逻辑处理。那么如何实现这种定制化操作呢&am…

[Meachines][Medium]IClean

Main $ nmap -p- -sC -sV 10.10.11.12 -Pn --min-rate 1000 $ echo "10.10.11.12 capiclean.htb">>/etc/hosts 这题可能和python的SSTI有关 $ gobuster dir --url "http://capiclean.htb" --wordlist /usr/share/seclists/Discovery/Web-Content/c…

ENVI操作:GF2影像全色与多光谱融合

1、插件下载安装 1.1、插件下载 ENVI 处理 GF2影像需利用特定的 App 插件进行处理;进入下述官方网站,点击 下载 即可;仅支持 ENVI 5.3.1 以上版本的软件; 下载地址:https://envi.geoscene.cn/appstore/ 1.2、属性设…

VS2022配置和搭建QT

一、下载QT 可以去QT官网下载:https://www.qt.io/product/development-tools。 直接安装。 二、安装qt插件 直接在vs插件市场搜索就行。 安装的时候根据提示,关闭vs自动安装 再次进去vs提示你选择qt版本,psth里边找到安装版本的qmake.exe就行 配…

11.盛最多水的容器 C++

一开始我最先想到的是暴力解法,就是两个循环嵌套依次遍历,所有情况都过一遍找出最大值,这样示例的结果虽然是正确的,但是超时。所以暴力解法行不通,双指针思考才是正道,双指针一般都是一边一个,…

裸金属服务器是什么

自推出裸金属服务器以来,它一直断断续续地出现在我们面前。最近,关于裸金属服务器、什么是裸金属服务器、裸金属服务器可以做什么、数据托架共享的讨论越来越多: 裸金属服务器(bare metal server,BMS)的官…

数据库——实 验 8 SQL 编程

1.T-SQL 语言简介 SQL Server 使用的语言称作 Transact-SQL, 它不仅包括基本 SQL 操作的内容,如 SQL 的数据查询功能和数据操作功能等,还有一般程序设计的能力。 2. 局部变量和全局变量的概念 1)局部变量 局部变量是一个能够拥有特定数据类型的对…

掌握Linux Shell脚本函数:提高脚本效率与可维护性

目录标题 1、什么是Shell函数?2、如何定义Shell函数?3、Shell函数参数4、返回值5、实例:使用函数进行文件备份6、为什么使用函数?7、最佳实践 在编写Linux shell脚本时,函数是组织和重用代码的重要手段。本文将介绍如何…

python getsize如何使用

第一步,点击键盘 winr,打开运行窗口;在窗口中输入“cmd",点击确定,打开windows命令行窗口。 第二步,在windows命令行窗口中,输入“python”,进入python交互窗口。 第三步&#…

C++ —— 继承

什么是继承? 继承是指一种代码可以被复用的机制,在一个类的基础上进行扩展,产生的新类叫做派生类,被继承的类叫基类。(也可称为子类和父类) 继承的写法: class B : 继承方式 A (…

Laravel 6 - 第十三章 请求

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

SpringBoot引入第三方jar包或本地jar包

idea2018创建spring boot项目 New Project窗口选择Spring Initializr Type选择Maven(Generate…),有两个Maven选择这一个。 勾选Spring Web。 pom.xml中version改成2.5.10。 在resources中新建jar目录,将第三方jar包fastjson2-2.0.47.jar放入其中。&#xff08…

【C++】日期计算机

个人主页:救赎小恶魔 欢迎大家来到小恶魔频道 好久不见,甚是想念 今天我们要讲述的是一个日期类计算机的代码实现 引言: 我们日常生活中可能会有一个烦恼。 今天几月几号?过n天后又是几月几号?某年某月某天和x年…

Python读写文本URL蓝牙WIFI自动连接电子名片位置坐标智能海报等NDEF标签

本示例使用的发卡器:https://item.taobao.com/item.htm?id615391857885&spma1z10.5-c.w4002-21818769070.11.60ad789erlonvk 近场通信(Near Field Communication,简称NFC),是一种新兴的技术&…

实验:使用apache + yum实现自制yum仓库

实验准备 Web服务器端:cenos-1(IP:10.9.25.33) 客户端:centos-2 保证两台机器网络畅通,原yum仓库可用,关闭防火墙和selinux Web服务器端 ①安装httpd并运行,设置开机自启动 安装…