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

JAVA EE初阶 4:文件操作和IO

1.认识文件                    2.文件系统操作                 3.文件内容操作                    4.练习

1.认识文件

1.1 文件路径

1.2 文件种类

查看字符编码(UTF-8)http://www.mytju.com/classCode/tools/encode_utf8.asp

2.文件系统操作

        创建、删除、移动文件、获取文件属性…

2.1 File属性、构造方法

主要使用第二个版本 File(String pathname) ,第一和第三个中的String child都是相对路径,前面的都是基准路径(字符串/File对象)

2.2 File方法

2.2.1 返回路径

2.2.2 判断

2.2.3 创建与删除

2.2.4 返回

2.2.5 其他

3.文件内容操作(读写文件--数据流)

3.1 字节流(读)--InputStream




3.2 字节流(写)--OutputStream

3.3 字符流(读 写)--Reader Writer

3.4 其他


4.练习

import java.io.File;
import java.util.Scanner;public class Demo {public static void main(String[] args) {//1. 让用户输入要查询的文件名Scanner sc = new Scanner(System.in);System.out.println("请用户输入要查询的目录:");String dir = sc.next();System.out.println("请用户输入要查询的文件名:");String filename = sc.next();//2. 判定目录是否存在File rootfile = new File(dir);if(!rootfile.isDirectory()){System.out.println("您输入的目录不存在");return;}//3. 进行搜索 递归的边里目录中所有文件和子目录scanDir(rootfile,filename);}private static void scanDir(File rootfile, String filename) {//可以看到递归过程  System.out.println("当前正在搜索的目录是:" + rootfile.getAbsolutePath());//1. 列出 rootfile 中的内容File[] files = rootfile.listFiles();if(files == null) return; //空目录//2. 遍历 files 数组,判定每个元素的类型for(File file : files){if(file.isDirectory()) scanDir(file,filename); //是一个目录,递归调用scanDir方法else if(file.isFile()){ if(file.getName().contains(filename)) tryDelete(file);}//是一个文件,判断文件名是否包含要查询的文件名}}private static void tryDelete(File file) {System.out.println("要删除的文件是:" + file.getAbsolutePath());Scanner sc = new Scanner(System.in);System.out.println("是否确认删除(Y/N):");String choice= sc.next();if(choice.equals("Y") || choice.equals("y")){file.delete();System.out.println("删除成功");}} }

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Scanner;public class Demo {public static void main(String[] args) {//1. 复制文件  让用户输入源文件路径和目标文件路径Scanner sc = new Scanner(System.in);System.out.println("请用户输入源文件路径:");String srcPath = sc.next();System.out.println("请用户输入目标文件路径:");String destPath = sc.next();//2. 判定源文件是否存在File srcFile = new File(srcPath);if(!srcFile.isFile()){System.out.println("您输入的源文件不存在");return;}//3. 判定目标文件的父目录是否存在  File destFile = new File(destPath);File parentFile = destFile.getParentFile();if(!parentFile.isDirectory()){System.out.println("您输入的目标文件的父目录不存在");return;}//4. 进行拷贝copy(srcFile,destFile);}private static void copy(File srcFile, File destFile) {try(InputStream is = new FileInputStream(srcFile);OutputStream os = new FileOutputStream(destFile);) {while (true) {byte[] buffer = new byte[1024];int len = is.read(buffer);if(len == -1) break;os.write(buffer,0,len);}} catch (IOException e) { e.printStackTrace(); }}}

http://www.dtcms.com/a/358472.html

相关文章:

  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • Python API接口实战指南:从入门到精通
  • HarmonyOS三方库的使用
  • Java SpringAI应用开发面试全流程解析:RAG、流式推理与企业落地
  • 【Java工程师面试全攻略】Day13:云原生架构与Service Mesh深度解析
  • 防火墙技术(二):安全区域
  • 【Linux】系统部分——软硬链接动静态库的使用
  • Tomcat 企业级运维实战系列(四):Tomcat 企业级监控
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 生成式 AI 重构内容生产:效率提升背后的创作版权边界争议
  • react虚拟列表实现及原理
  • leetcode2(移除元素)
  • 本地部署音效生成器 Moodist 并实现外部访问
  • Spring Cloud 和 Dubbo 是目前主流的两大微服务框架,分别代表了两种不同的技术路线
  • HarmonyOS 应用开发:基于API 12及以上的现代化实践
  • I2C多点触控驱动开发详解
  • Elasticsearch logsdb 索引模式和 TSDS 的业务影响
  • 【小白笔记】基本的Linux命令来查看服务器的CPU、内存、磁盘和系统信息
  • 网络编程4-并发服务器、阻塞与非阻塞IO、信号驱动模型、IO多路复用..
  • MQTT 连接建立与断开流程详解(二)
  • 项目管理在企业中的作用
  • 小迪Web自用笔记7
  • Redission 实现延迟队列
  • 鸿蒙NEXT布局全解析:从线性到瀑布流,构建自适应UI界面
  • Notepad++常用设置
  • 金仓数据库迁移评估系统(KDMS)V4正式上线,助力企业高效完成数据库国产化替代
  • 果蔬采摘机器人:自动驾驶融合视觉识别,精准定位,高效作业
  • 【SoC】【W800】基于W800的PWM实现