当前位置: 首页 > news >正文

使用文件的基本操作和文件内容读写操作实现三个功能

前言

最近在学习文件。今天学完了文件的基本操作以及对文件内容的读写操作。写了三个功能,来巩固知识。

1.扫描指定目录,并找到名称中包含指定字符的所有普通文件(不包含目录),并且用户可以选择是否删除该文件

package File;import java.io.File;
import java.util.Scanner;public class demo13 {public static void main(String[] args) {System.out.println("请输入目录");Scanner scanner=new Scanner(System.in);String directory=scanner.next();//这里直接传入directory,不是传入"directory",没有双引号File file=new File(directory);if(!file.isDirectory()){System.out.println("你输入的不是目录");return;}//走到这里,则输入的一定是目录System.out.println("请输入你要查找的关键文件");Scanner scanner1=new Scanner(System.in);String keyfile=scanner1.next();search_file(file,keyfile);}private static void search_file(File file, String keyfile) {//列出当前目录下的所有文件File[] files=file.listFiles();//考虑当前目录下的文件为空的情况if(files==null){return;}//遍历当前目录下的所有文件for(File file1:files){//分为两种情况,一种还是目录,就还得找文件,一种是文件,那就判断是不是要删除的关键文件if(file1.isDirectory()){search_file(file1,keyfile);}if(file1.isFile()){delfile(file1,keyfile);}}}private static void delfile(File files, String keyfile) {if(files.getName().contains(keyfile)){System.out.println(files.getName());System.out.println("已经找到关键文件"+files.getAbsolutePath()+"是否删除(y/n)");Scanner scanner=new Scanner(System.in);String input=scanner.next();//确保输入大写Y小写y都可以删除if(input.equalsIgnoreCase("y")){files.delete();System.out.println("删除成功");return;}}}
}

运行结果如下

2. 进行普通文件的复制

package File;import java.io.*;
import java.util.Scanner;public class demo14 {public static void main(String[] args) {System.out.println("请输入被复制的文件路径");Scanner scanner=new Scanner(System.in);String file1=scanner.next();File srcfile=new File(file1);if(!srcfile.isFile()){System.out.println("该文件不存在或者这个是目录");return;}System.out.println("请输入要复制文件到那里去的路径");Scanner scanner1=new Scanner(System.in);String file2=scanner1.next();File desfile=new File(file2);//这个desfile的文件可以没有,但是它的目录必须有。if(!desfile.getParentFile().isDirectory()){System.out.println("你没有输入目录");return;}try(InputStream inputStream=new FileInputStream(srcfile);OutputStream outputStream=new FileOutputStream(desfile)){while(true){byte[] data=new byte[1024];int n=inputStream.read(data);if(n==-1){break;}outputStream.write(data,0,n);}}catch (IOException e) {throw new RuntimeException(e);}}
}

运行结果如下 

注意事项如下

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

package File;import java.io.*;
import java.util.Scanner;public class demo16 {public static void main(String[] args) {System.out.println("请输入你要搜索的目录");Scanner scanner=new Scanner(System.in);String searchpath=scanner.next();File searchdirectory=new File(searchpath);if(!searchdirectory.isDirectory()){System.out.println("你输入的不是目录");return;}System.out.println("请输入你要查找的关键字");Scanner scanner1=new Scanner(System.in);String keyword=scanner1.next();Search(searchdirectory,keyword);}private static void Search(File searchdirectory, String keyword) {File[] files=searchdirectory.listFiles();if(files==null){return;}for(File file:files){if(file.isDirectory()){Search(file,keyword);}if(file.isFile()){Lookup(file,keyword);}}}private static void Lookup(File file, String keyword) {if(file.getName().contains(keyword)){System.out.println("找到了含有关键字的指定文件了"+file.getAbsolutePath());}//使用StringBuffer来记录内容StringBuffer stringBuffer=new StringBuffer();//因为keyword是字符串,就使用Reader了try(Reader reader=new FileReader(file)){while(true){char[] chars=new char[1024];int n=reader.read(chars);if(n==-1){break;}stringBuffer.append(chars,0,n);}} catch (IOException e) {throw new RuntimeException(e);}//找得到keyword,就返回下标,找不到就返回-1if(stringBuffer.indexOf(keyword)>=0){System.out.println("内容包含关键字"+file.getAbsolutePath());}}}

运行结果 

结语 

byebye~ 文件的学习暂时结束

相关文章:

  • 玛哈特零件矫平机:精密制造中的平整度守护者
  • 【11408学习记录】考研数学核心突破:矩阵本质、系统信息与向量空间基
  • Flutter 小技巧之:实现 iOS 26 的 “液态玻璃”
  • LLaMA Factory 微调教程:如何构建高质量数据集?
  • 低代码二次开发指南:基于HENGSHI SENSE的自动化报表生成教程
  • 【Docker基础】Docker核心概念:容器(Container)与镜像(Image)的区别与联系
  • (二十六)深度解析领域特定语言(DSL)第四章——词法分析:基于正则表达式的词法分析器
  • 【从零学习JVM|第七篇】快速了解直接内存
  • 用volatile修饰数组代表什么意思,Java
  • # Flask:Python的轻量级Web框架入门之旅(超级实用!)
  • 动态多目标进化算法:MOEA/D-SVR求解CEC2018(DF1-DF14),提供完整MATLAB代码
  • mvc与mvp
  • pysnmp 操作流程和模块交互关系的可视化总结
  • Genio 1200 Evaluation MT8395平台安装ubuntu
  • ​​​​​​​《TCP/IP协议卷1》第9章 IP选路
  • Gemini 2.5 Pro 和Claude 3.7 理综物理真题,考研数学真题实战对比,国内直接使用
  • 腾讯云:6月30日起,自动禁用,及时排查
  • Odoo 基于规则的线索自动分配实践指南
  • SQL进阶之旅 Day 28:跨库操作与ETL技术
  • List ToMap优化优化再优化到极致
  • 动力网站建设/新平台推广
  • 合山网站建设/如何建造自己的网站
  • 网站建设吗/手机网站百度关键词排名查询
  • 做胎儿羊水鉴定网站/关键词排名提升工具
  • 泰安市网站建设公司/适合seo的建站系统
  • 网站建设的盈利模式/十大免费最亏的免费app