高效IO之File文件操作类的基础用法(二)

深入理解C#中的IO操作:File类的详解 File类位于System.IO命名空间中,它提供了静态方法,用于处理文件系统。这些方法可以用来读取、写入、创建、复制、移动和删除文件。由于File类是静态的,因此我们不需要创建它的实例就可以使用它的方法。File类是C#中进行文件操作的重要工具。通过掌握File类的常用方法,我们可以方便地进行文件的创建、读取、写入、复制、移动和删除等操作。在使用File类时,要注意处理异常,并合理地管理文件流,以确保文件操作的安全和高效。 阅读详情

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680

前言

众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一下File类的用法。 话不多说了,来一起看看详细的介绍吧

1.基本概念

File:文件和目录路径名的抽象表示形式,代表文件或者文件夹。

2.构造方法
// 根据parent抽象路径名和child路径名字符串创建一个新File实例
File(File parent, String child)
// 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例
File(String pathname)
// 根据parent路径名字符串和child路径名字符串创建一个新File实例
File(String parent, String child)
// 通过将给定的file:URI转换为一个抽象路径名来创建一个新的File实例
File(URI uri)
3.常用方法

(1).创建功能
// 创建此抽象路径名指定的目录
boolean mkdir()
// 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录
boolean mkdirs()
// 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件
boolean createNewFile()
// 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称
static File createTempFile(String prefix, String suffix)
// 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称
static File createTempFile(String prefix, String suffix, File directory)

// 构造方法一
File file1 =new File(``"[f://file1](file:///F://file1)"``);
// 构造方法二
File file2 =new File(``"[f://file1](file:///F://file1)"``,` `"file2"``);
// 构造方法三`
File file3 =` `new` `File(file2,` `"file3.txt"``);
// 创建目录并返回是否创建成功,如果目录存在则返回false
boolean` `b1 = file1.mkdir();
System.out.println(b1);``// true
// 创建目录`
boolean` `b2 = file2.mkdir()
System.out.println(b2);``// true
// 创建文件`
// 在F盘下创建/file1/file2/file3.txt文件
boolean` `b3 = file3.createNewFile();
System.out.println(b3);``// true
// 创建空文件并指定前缀和后缀
// 在F盘下创建/file1/file2/file4.....exe文件
File.createTempFile(``"file4"``,` `".exe"``, file2);

19956127-f58926852c1024c1.png

注:三种构造方法效果是等同的,没有本质区别;创建目录mkdir()、mkdirs()方法,mkdirs()方法创建目录时,如果待创建目录的上几级目录不存在则一并创建,mkdir()则只能创建单级目录。
(2).删除功能
// 删除此抽象路径名表示的文件或目录
boolean delete()

//删除目录
System.out.println(file1.delete()); // false
//删除文件
System.out.println(file3.delete());// true

注:删除操作时,删除的是目录,则必须保证是空目录。
(3).判断功能

// 测试此抽象路径名表示的文件或目录是否存在
boolean exists()
// 测试此抽象路径名表示的文件是否是一个目录
boolean isDirectory()
// 测试此抽象路径名表示的文件是否是一个标准文件
boolean isFile()
// 测试此抽象路径名指定的文件是否是一个隐藏文件
boolean isHidden()
// 测试应用程序是否可以读取此抽象路径名表示的文件
boolean canRead()
// 测试应用程序是否可以修改此抽象路径名表示的文件
boolean canWrite()

File file =`new `File(``"[F://hello](file:///F://hello)"``);
File file2 =` `new` `File(file,` `"blog.txt"``);
// 判断是否存在
if` `(!file.exists()) {
// 创建目录
file.mkdir();
}
if` `(file2.exists()) {
// 创建文件
file2.createNewFile();
}
// 判断是否是目录
System.out.println(file.isDirectory());``// true
// 判断是否是文件
System.out.println(file.isFile());``// false
System.out.println(file2.isDirectory());``// false
System.out.println(file2.isFile());``// true
System.out.println(file2.isHidden());``// false
// 判断是否是隐藏的
System.out.println(file2.isHidden());``// false
// 判断是否可读
System.out.println(file2.canRead());``// true
// 判断是否可写
System.out.println(file2.canWrite());``// true

注:可以自主修改文件可读性,查看不同输出。
(4).获取功能

(1).基本获取功能

// 返回由此抽象路径名表示的文件或目录的名称
String getName()
// 返回此抽象路径名的绝对路径名形式
File getAbsoluteFile()
// 返回此抽象路径名的绝对路径名字符串
String getAbsolutePath()
// 将此抽象路径名转换为一个路径名字符串
String getPath()
// 返回此抽象路径名表示的文件最后一次被修改的时间
long lastModified()

File file =new File(``"[F://hello](file:///F://hello)"``);
`File file2 = new File(file,` `"blog.txt"``);
// 判断文件或目录是否存在
if` (!file.exists()) {
// 不存在则创建
file.mkdir();
}
if (file2.exists()) {
// 创建文件
file2.createNewFile();
}
//获取文件名或者目录名
System.out.println(file2.getName());``// blog.txt
//获取文件或目录的绝对路径
System.out.println(file2.getAbsolutePath());``// F:\hello\blog.txt
//获取文件或目录的路径名(绝对路径或者相对路径)
System.out.println(file2.getPath());``// F:\hello\blog.txt
//获取文件或目录修改的最后时间返回毫秒值
System.out.println(file2.lastModified());``// 1463734158963

(2).迭代获取功能,过滤器功能

// 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录
String[] list()
// 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录
String[] list(FilenameFilter filter)
// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
File[] listFiles()
// 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
File[] listFiles(FileFilter filter)
// 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录
File[] listFiles(FilenameFilter filter)

图示:先看下F盘里面的东东


19956127-7428ae5d90a2311b.png
File file =` `new` `File(``"[F://](file:///F://)"``);
// 获取抽象路径名下的文件和目录
String[] s = file.list();
// 过滤文件或者目录名
String[] ss = file.list(``new` `FilenameFilter() {
public` `boolean` `accept(File dir, String name) {
// 返回以.png结尾的文件或者目录名
// 控制返回值判断是否添加到数组中
return` `name.endsWith(``".png"``);
}
});
// 增强for输出
for` `(String string : s) {
System.out.print(string +` `" "``);``// $RECYCLE.BIN android4.0黑马 android视频......等等
}
// 增强for
for (String string : ss) {
System.out.print(string +` `" "``);``// ic_ptr_loading.png ic_ptr_pull.png ic_ptr_release.png
}
// 获取抽象路径名下的文件和目录对象
File[] files = file.listFiles();
// 获取抽象路径名下的文件和目录对象,添加文件过滤
File[] files2 = file.listFiles(``new` `FileFilter() {
public` `boolean` `accept(File pathname) {
// 判断是否是隐藏目录
return (pathname.isDirectory()&&pathname.isHidden());
}
});
// 获取抽象路径名下的文件和目录对象,添加文件名过滤
File[] files3 = file.listFiles(``new` `FilenameFilter() {
public boolean accept(File dir, String name) {
// 判断是否是以png结尾的文件
return (``new` `File(dir, name).isFile())&&name.endsWith(``".png"``);
}
});
for (File f : files) {
System.out.print(f.getName()+``" "``);``//$RECYCLE.BIN android4.0黑马 android视频......等等
System.out.println();
for (File f : files2) {
System.out.print(f.getName()+``" "``);``//$RECYCLE.BIN ghos
}
System.out.println();
for (File f : files3) {
System.out.print(f.getName());``//ic_ptr_loading.pngic_ptr_pull.pngic_ptr_release.png
}

(5).重命名功能

// 重新命名此抽象路径名表示的文件
boolean renameTo(File dest)

?

// 重新命名此抽象路径名表示的文件
// boolean renameTo(File dest)
File file =` `new` `File(``"[f://](file:///F://)"``);
File[] files = file.listFiles();
for` `(``int` `i =` `0``; i < files.length; i++) {
File f = files[i];
//判断是否是以.png结尾的文件
if` `(f.isFile() && f.getName().endsWith(``".png"``)) {
// 更改文件名,renameTo()接收File对象 ,这里该对象并未指定盘符
boolean` `b = f.renameTo(``new` `File(``"pic"` `+ i +` `".png"``));
System.out.println(b);
// true
// true
// true
}
}

图示:


19956127-795dc0e544ec9e05.png

19956127-c63564b99e7c131a.png

注:更改文件或目录名时,renameTo()方法参数对象如果不指定盘的话,默认会将文件剪切到项目目录下(由上面截图可以看到);指定盘符的话会根据指定位置剪切到该位置。renameTo()方法相当于剪切加重命名。
注:更多方法查看API

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680

原文链接:https://www.jb51.net/article/143092.htm

基于STM32F407VET6的智能巡检小车灰度循迹系统优化设计 本文详细介绍了基于STM32F407VET6主控芯片的智能巡检小车灰度循迹系统优化设计。通过将传感器输出从数字量升级为模拟量以获取更丰富的路面信息,并采用PD控制算法结合速度管理策略,有效提升了小车在复杂弯道上的循迹稳定性与适应性。文章分享了硬件电路抗干扰设计、软件滤波及实战调优经验,为嵌入式开发者提供了从“能跑”到“跑得稳”的系统性解决方案。 阅读详情

相关推荐

Xilinx FPGA MultiBoot实战:7Series与UltraScale的SPI Fallback配置详解

本文深入解析了Xilinx FPGA的MultiBoot(多启动)与Fallback(回退)功能,针对7系列与UltraScale/UltraScale+系列,提供了从约束文件编写、看门狗集成到镜像烧录的完整实战配置指南。文章重点对比了两个系列在SPI Fallback配置上的关键差异与注意事项,旨在帮助工程师构建高可靠、永不宕机的FPGA系统。

weixin_29197051的博客 547

Android File的详解

Android的文件存储分为外部存储和内部存储(即External storage 和 internal storage) 外部存储,用PC的理解即移动硬盘和U盘等 ,而对于安卓手机来说比较特别,,很多中高端机器都将自己的机身存储扩展到了8G以上,他们将存储在概念上分成了"内部internal" 和"外部external" 两部分,但其实都在手机内部。所以不管安卓手机是否有可移动的sdca

xueyoubangbang的博客 4370

从零到一:RJ71EN71 ModbusTCP配置的避坑指南与实战技巧

本文详细解析三菱RJ71EN71模块的ModbusTCP配置全流程,涵盖GX Works3参数设置、地址映射、通信调试等核心环节。针对工业环境中常见的IP冲突、软元件分配错误、通信超时等高频问题提供实战解决方案,帮助工程师快速构建高可靠性通信网络,避免项目延期风险。

zzz56的博客 332

Android file类使用详解-SDcard

Android file类使用详解-SDcard

Android开发-CXY的博客 1万+

MATLAB不能识别已安装的visual studio 2015解决方法

首先,对于MATLAB识别已经安装的vs版本通过命令: mex -setup 下图为本电脑下同时安装的两个visual studio 如果搞清楚MATLAB识别电脑上安装vs的过程,可通过命令: mex -setup -v MATLAB输出识别编译器的整个过程。其中HKLM和HKCU分别是注册表中的HKEY_CURRENT_USER,HKEY_LOCAL_MA…的缩写,MATLAB没有找到对应编译器是由于注册表里没有对应信息(主要是文件路径,C++编译器的路径),或者在注册表里存在该信息,但是找不到

qq_36320710的博客 4900

基于aarch64分析kernel源码 六:kernel_init进程(1号进程)、kthreadd进程(2号进程)

kernel_init进程(1号进程)、kthreadd进程(2号进程)分析

OnlyLove_的博客 766

【HDFS】HDFS学习笔记

参考:https://cshihong.github.io/2018/05/10/HDFS%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86/

Jessie_show的博客 711

YOLOv11改进 | 模型知识蒸馏篇 | 利用模型蒸馏改进YOLOv11进行无损涨点 | 离线蒸馏(附代码 + 完整文件 + 解析教程)

这篇文章给大家带来的最新改进是模型的蒸馏,利用教师模型指导学生模型从而进行模型的涨点,本文的内容不仅可以用于论文中,在目前的绝大多数的工作中模型蒸馏是一项非常重要的技术,所以大家可以仔细学习一下本文的内容,本文从YOLOv8的项目文件为例,进行详细的修改教程,文章内包括完整的修改教程,针对小白我出了视频修改教程,如果你还不会我提供了修改后的文件大家直接运行即可,所以说不用担心不会适用!模型蒸馏真正的无损涨点,蒸馏你只看这一篇文章就足够了!欢迎大家订阅我的专栏一起学习YOLO!

Snu77的博客 4328

Android-----File(文件各种操作)

1.操作文件的小工具:DocumentTool.java package com.hs.example.exampleapplication.ToolUtil; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.AssetManager; import android.os.Environmen

JessiesCC的博客 1029

视觉测量实战:C#上位机+OpenCVSharp 实现工业零件尺寸自动检测(精准像素级,工业级可落地)

本次开发的上位机界面遵循工业现场操作规范简洁、直观、按钮大、文字清晰、参数可视化调节,操作人员为车间工人/质检员,无需复杂操作,所有控件均为WinForms原生控件,拖拽即可完成布局本次实战完成了C#上位机+OpenCVSharp 工业零件尺寸自动检测系统的完整开发,这套方案是工业视觉测量的标准落地方案,适配95%的规则几何零件的尺寸检测场景,从五金件、塑胶件到电子元件,全覆盖无死角。测量效率提升100倍、精度提升10倍、无人工误差、可适配流水线实时检测。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 851

EtherCAT报文-BRD(广播读)抓包分析

EtherCAT报文之BRD(广播读)报文Wireshark抓包分析。

kevin1499的博客 1214

Android进阶-File类的学习-简单文件管理器

效果图: 首先manifest中加入可以读取SD卡的权限,如下 <!-- 判断是否存在文件系统SD卡 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 允许当前应用程序读取SD卡文件 --> <uses-permission android:

王涛的博客 2649

Jetson agx Orin 适配Xenomai4

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。

xiaoning132的专栏 468

判断file空_高效IO之File文件操作类的基础用法(二)

更多Android高级架构进阶视频免费学习请点击:哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili​space.bilibili.com前言众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一下File类的用法。 话不多说了,来一起看看详细的介绍吧1.基本概念File:文件和目录路径名的抽象表示形式,代表文件或者文件夹。2.构造方法// 根据parent抽象路径名和ch...

weixin_32081079的博客 90

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

android uri转file_高效IO之File文件操作类的基础用法(二)

更多Android高级架构进阶视频免费学习请点击:哔哩哔哩 ( ゜- ゜)つロ 乾杯~ Bilibili​space.bilibili.com前言众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一下File类的用法。 话不多说了,来一起看看详细的介绍吧1.基本概念File:文件和目录路径名的抽象表示形式,代表文件或者文件夹。2.构造方法// 根据parent抽象路径名和ch...

weixin_39524882的博客 272

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Android最全高效IO之File文件操作类的基础用法(二),2024年最新安卓面试题初级

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84545497的博客 396

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Java文件操作全解析:File与IO流深度指南

文件操作是Java开发中的重要基础技能。本文将全面解析Java文件操作的核心知识点,从文件路径概念到IO流实战应用,助你构建完整的文件处理知识体系。

weixin_69555518的博客 883

IO——File及File 类

介绍IO设备、文件、路径等基础知识,介绍File的常用方法

ShirleyZ1007的博客 592

Java中的File类和IO流

概述: 1.File:翻译是文件,用于表达java中的路径名。 2.路径:用于表示文件或者文件夹在当前系统中的位置 3.路径的分类: 绝对路径 相对路径 4.绝对路径:没有任何的歧义,也没有任何的前提条件 Windows,从盘符开始的路径,例如"D:/a/b/c/d/a.txt" ...

Jack 1万+

【Java】Java基础之File类与IO流

File类和IO流的构造方法以及常用方法笔记

胡振涛 583

Java 文件操作与 IO 基础:从文件概念到 File 类的全面理解

本文以 Java 中的 File 类为核心,梳理了文件路径、目录操作与重命名等常见基础知识。通过示例说明 File 对象并不等同于真实文件,强调绝对路径与相对路径的区别、createNewFile 与 mkdir 的作用差异,以及 renameTo 的实际行为逻辑。内容旨在帮助初学者建立清晰的文件系统概念,为后续深入学习 IO 流与文件操作打好基础。

yu_tian_z的博客 481

【Linux基础IO】深入解析Linux基础IO缓冲区机制:提升文件操作效率的关键

在Linux操作系统的广阔世界里,IO(输入/输出)操作是系统与外部设备(如硬盘、网络等)进行数据交换的基石。然而,直接而频繁地进行IO操作往往会成为系统性能的瓶颈,因为物理设备的访问速度远不及内存的处理速度。为了缓解这一矛盾,Linux引入了一系列高效的IO缓冲机制,通过在用户空间和内核空间之间设置缓冲区,以减少对物理设备的直接访问,从而提高数据处理的效率和系统的整体性能

EterNity_TiMe_的计算机学习之路 2251

【一文了解】Directory类和File类

本文介绍了C#中System.IO命名空间下的Directory和File类,这两个静态类分别用于目录和文件操作。Directory类提供创建、删除、查询目录等方法,如CreateDirectory、Delete、Exists等;File类则提供文件的读写、复制、移动等方法,如WriteAllText、ReadAllBytes、Copy等。在Unity开发中,建议使用Application.persistentDataPath等跨平台路径,并注意WebGL和移动端的平台限制。

grapefruit_lyy的博客 1126

file和io流

本文详细介绍了Java中的File类与IO流,涵盖了File类的基本操作、IO流的工作原理、分类(按流向、处理方式和功能),以及FileReader、FileWriter、InputStream/OutputStream、Buffered流和对象流的使用,包括序列化与反序列化示例

weixin_67205556的博客 1432

Elixir文件操作:File模块的IO处理

还在为Elixir中的文件操作而烦恼吗?一文掌握File模块的核心IO处理技巧,从基础读写到高级流处理,彻底解决你的文件操作难题! 读完本文你将获得: - File模块的核心函数使用指南 - 二进制与文本模式的最佳实践 - 文件流处理的高效技巧 - 错误处理与性能优化策略 - 实战代码示例与最佳实践 ## File模块概览 Elixir的File模块提供了丰富的文件操作功能,涵盖了从基础的文...

gitblog_01112的博客 1033
上一篇: 高效IO之Java IO体系(一)
下一篇: 高效IO之Dex加密(三)
Python_林一
博客等级 码龄7年 889粉丝 510原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值