黑马程序员_14_IO流文件类

本文详细介绍了Java中IO流的基本概念及其分类,并重点讲解了File类的使用方法,包括如何创建、删除文件和目录,以及如何获取文件属性。

 ------- android培训java培训、期待与您交流! ----------

IO流<Input Output>一些知识总结:

IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式。

流按照操作数据分为两种:
     1:字节流与字符流
       字节流的抽象基类是InputStream OutputStream
流按照流向分为:
     1:输入流与输出流
       字符流的抽象基类是Reader  Writer
IO流解决的问题:主要解决的是设备与设备之间的数据传输问题。比如:内存---硬盘 , 硬盘---内存

IO流的应用场景:读取文件,导出报表,上传照片。

那么操作文件,让我们先来了解File<文件类>一些常用方法:
File可以描述一个文件或者文件夹。
一:常用的构造方法:
      File(String pathname) 指定一个文件的路径,然后创建一个File对象。
      File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
      路径问题:绝对路径---文件的具体路径信息,绝对路径一般都是以盘符开头的路径。
      相对路径:文件资源相对于程序当前的路径。注意,如果当前程序所在的路径与操作的资源文件不是在同一个盘下,那么不准写相对路径。
      . 当前所在的路径。
      ..上一级路径。
二:常用创建方法:
createNewFile() 在指定位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false
mkdir() 在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在就抛异常。
mkdirs()在指定位置创建目录,这会创建路径中所有不存在的目录。
renameTo(File dest)重命名文件或文件夹,也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。移动/重命名成功则返回true,失败则返回false。

public class Demo2 {

	public static void main(String[] args) throws IOException {
		File file = new File("F:\\a.txt");
		//createNewFile() 创建一个文件的对象 的。  如果指定的路径已经存在了该文件,那么该方法不会再创建该文件了,
		System.out.println("创建文件成功吗?"+ file.createNewFile()); 
		File dir = new File("F:\\aa\\bb");
		// mkdir 创建一个文件夹。如果指定文件夹目录已经存在了,那么不会再创建了。 只能用于创建单级目录。	
		System.out.println("创建文件夹成功吗?"+ dir.mkdir());  
		System.out.println("创建文件夹成功吗?"+ dir.mkdirs());  //创建多级目录。
		
		File file2 = new File("F:\\a.txt");
		File destFile = new File("F:\\b.txt");
		file2.renameTo(destFile); 
		
		File file3= new File("F:\\bb");
		File destFile2 = new File("E:\\aa");
		// renameTo 如果目标文件与源文件是位于同一级目录renameTo的作用是重名名,可以操作文件也可以操作文件夹。    
		System.out.println("操作成功吗?"+ file2.renameTo(destFile2));  
		// renameTo 如果目标文件与源文件是位于不同的目录下,那么renameTo的功能就是剪切的功能,但是还可以对剪切的文件进行重命名 。  如果是剪切功能 的时候,不能用于操作文件夹。
		

三:删除和判断:

删除:
delete()删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。
deleteOnExit()在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除

判断:
exists()文件或文件夹是否存在。
isFile()是否是一个文件,如果不存在,则始终为false。
isDirectory()是否是一个目录,如果不存在,则始终为false。

isHidden()是否是一个隐藏的文件或是否是隐藏的目录。
isAbsolute()测试此抽象路径名是否为绝对路径名。

public class Demo3 {
	
	public static void main(String[] args) throws Exception {
		
		//删除
		File file = new File("F:\\a.txt");
		// delete 删除一个文件或者 是文件夹  , 用于删除文件夹的时候,文件夹必须 是一个空的文件夹。
		System.out.println("删除成功吗?"+ file.delete());  
		Thread.sleep(5000);
		 //删除一个文件或者是文件夹。   jvm退出的时候删除文件。
		file.deleteOnExit();  //file.deleteOnExit(); 
		System.out.println("哈哈");
		
		File file2 = new File("..\\..\\a.txt");
		 //判断File是一个文件对象。
		System.out.println("是一个文件吗?"+ file2.isFile()); 
		 // isDirectory 判断是否为文件夹。
		System.out.println("是文件夹吗?"+ file2.isDirectory()); 
		 //isHidden 判断是否为隐藏文件。
		System.out.println("是隐藏文件吗?"+ file2.isHidden()); 
		System.out.println("是绝对路吗?"+ file2.isAbsolute());
	}
}


四:获取方法:
getName()获取文件或文件夹的名称,不包含上级路径。
getPath()返回绝对路径,可以是相对路径,但是目录要指定
getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系

length()获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。
getParent()返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
lastModified()获取最后一次被修改的时间。

public class Demo4 {
	
	public static void main(String[] args) {
		
		File file = new File("F:\\a.txt");
		// getName 获取文件名
		System.out.println("文件名:"+ file.getName()); 
		System.out.println("绝对路径:" + file.getPath());  // getPath  返回绝对路径,
		// getAbsolutePath 返回文件的绝对路, 绝对路径 = 当前路径+ 你创建File对象传入的字符串信息。
		System.out.println("绝对路径:"+ file.getAbsolutePath()); 
		System.out.println("文件的大小:"+ file.length());  // length 返回文件 的大小,返回 的是以字节为单位 的。
		System.out.println("父级目录路径:"+ file.getParent());
		
		//毫秒转成一个Date,然后再转成一个指定格式 的日期字符串。
		Date date = new Date(file.lastModified());  //返回的是一个毫秒数。
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
		System.out.println("最后一次的修改时间是:" + dateFormat.format(date));
	}
}

五:与文件夹相关的方法:

staic File[] listRoots()列出所有的根目录(Window中就是所有系统的盘符)
list()返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。
listFiles()返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。

import java.io.File;

public class Demo1 {
	public static void main(String[] args) {
		File dir =  new File("I:\\");
		listFomatFile(dir);
	}
	//列出指定目录中所有的子文件名与所有的子目录名,要求目录名与文件名分开列出
		public static void listFomatFile(File dir){
			File[] files = dir.listFiles();
			System.out.println("子文件:");
			for(File file : files){
				if(file.isFile()){
					System.out.println("\t"+ file.getName());
				}
			}
			System.out.println("子目录:");
			for(File file : files){
				if(file.isDirectory()){
					System.out.println("\t"+ file.getName());
				}
			}
		}
}



                                           ------- android培训java培训、期待与您交流! ----------



Beyond Compare是一款文件差异比较工具的文件和文件夹比较工具,使用该工具可以可视化和调整差异, 合并修改,同步文件夹。支持文件夹比较,文件夹合并和同步,文本比较,表格比较,图片比较,16进制比较,注册表比较,版本比较等;调整差异,合并修改,内置文件浏览器可以针对文件、文件夹之间的差异对比及上传同步。 Beyond Compare 5.0.4.30422是一款先进的文件和文件夹比较工具,它能够帮助用户高效地识别和管理文件差异,支持多种文件型和格式的比较。使用Beyond Compare,用户可以轻松地对文件夹内容进行同步,无论是进行简单的文件复制还是复杂的项目同步任务。此外,该工具还具备了高级的文件比较功能,如文本比较、表格比较、图片比较、16进制比较以及注册表比较,覆盖了从纯文本到二进制文件的广泛使用场景。 对于文本文件的比较,Beyond Compare提供了语法高亮和行号等辅助功能,让用户在审查代码或文档时能更快地定位差异点。表格比较功能则特别适用于数据分析和处理任务,可以快速识别两个Excel电子表格之间的不同之处。在进行图片文件的比较时,用户可以通过直观的视图了解图片之间的微小差别,这在图像处理和质量控制中尤其有用。 此外,16进制比较功能为开发者提供了深入分析二进制文件差异的手段,无论是在软件开发还是在数据恢复方面都大有裨益。注册表比较则专注于Windows系统的核心配置文件,帮助IT专业人员快速定位系统配置的变化,这对于系统维护和故障排除尤其重要。 Beyond Compare内置的文件浏览器允许用户在一个界面内完成文件的浏览、比较和同步操作,极大的提高了工作效率。内置的差异调整和合并修改功能让同步文件夹的工作更加精确和便捷。用户可以针对不同的文件和文件夹进行个性化设置,实现定制化的比较和同步策略。
内容概要:本文介绍了一种基于Simulink的发电机故障暂态仿真模型,旨在深入研究发电机在发生各短路故障(如单相接地、两相短路接地及两相相间短路)时电压与电的动态变化特性。该模型精确构建了发电机及其保护系统的电气结构,能够有效模拟故障瞬间的暂态响应过程,全面分析不同接地方式(中性点不接地、经小电阻接地、经消弧线圈接地)对系统电气量的影响。通过仿真获取的电压、电波形数据,可用于评估电力系统的暂态稳定性、验证继电保护装置的动作逻辑与灵敏性,并为系统控制策略优化及故障诊断提供理论支撑和技术依据。; 适合人群:电气工程及其自动化、电力系统及其相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真分析、继电保护设计、电网运行维护等工作的工程技术人员。; 使用场景及目标:①用于高校教学与科学研究中对发电机故障机理及暂态过程的可视化分析与深入探讨;②支撑电力系统安全稳定分析、保护定值整定计算、控制策略优化与应急预案制定;③为实际电网故障后的诊断溯源、事故回溯与应急处置决策提供可靠的仿真平台与理论指导。; 阅读建议:建议读者结合MATLAB/Simulink仿真环境进行实践操作,按照文档指导逐步搭建仿真模型,设置不同型的故障条件进行对比实验,重点观察并分析电压、电波形的幅值、相位及衰减特性,深入理解其物理成因与系统影响,有条件者可进一步将模型扩展至多机系统以提升研究的工程应用价值。
源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在信息技术行业,特别是智能手机维修和改进的范畴内,“高通9008免拆机救黑砖教程工具”被视为一种通用的处理手段,它主要服务于那些面对设备无法正常运作或处于“黑砖”状态的消费者。这个压缩文件内含针对搭载高通处理器的智能手机的救援指南与实用工具,其核心目标在于协助用户在不进行物理拆解的前提下,成功进入9008模式,进而完成对手机的修复。 我们必须明确理解“高通9008模式”的概念。9008代表了高通芯片的一种下载状态,也称作EDL(eMMC Download Mode)。在该状态下,用户或技术人员能够直接对手机的存储单元进行编程操作、系统升级或固件回载,以此应对软件层面的故障。此模式一般应用于手机无法正常启动或遭遇严重故障的场合,属于一种较为根本性的修复措施。 “黑砖”状态描述了手机因软件层面的异常而无法开机或完全失去反应的情况,其成因通常涉及系统崩溃、刷机失败、恶意软件入侵等。当常规的恢复措施如强制重启、恢复界面等手段均告无效时,就需要借助9008模式这特殊通道来实施修复。 小米品牌手机广泛采用了高通处理器,因此当其产品遭遇黑砖问题时,该教程工具显示出极大的实用价值。此压缩文件可能包含以下组成部分: 1. **救砖教程**:提供详尽的程说明,引导用户如何安全地将设备导入9008模式,以及如何运用相关工具执行固件恢复或刷新操作。 2. **驱动程序**:高通9008模式的有效运行依赖于特定的驱动程序以实现与电脑的通信,压缩包中或许就整合了这些驱动,用户需先行安装它们以便连接手机并开展修复工作。 3. **线刷工具**:诸如MiFlash、QFIL等工具,它们能够支持用户通过...
内容概要:本文围绕Buck电路双闭环控制模型的仿真研究展开,基于Matlab/Simulink平台构建Buck直降压变换器的电压-电双闭环控制系统,深入探讨其动态响应特性、稳态精度及抗干扰能力。通过建立完整的系统模型,重点分析内外环控制结构的协同工作机制,尤其是电压外环与电内环的耦合关系,并研究PI控制器参数整定对系统性能的影响,旨在提升电源系统的控制精度、稳定性和动态响应速度。该研究为电力电子变换器的高性能控制提供了理论依据与仿真验证手段,适用于直电源、新能源并网、微电网等领域的控制策略开发。; 适合人群:具备电力电子技术、自动控制原理基础知识,熟悉Matlab/Simulink仿真环境,从事电力电子系统设计、新能源发电控制、电源研发等相关工作的工程技术人员及高校电气工程、自动化等专业的研究生。; 使用场景及目标:①掌握Buck电路的工作原理及其双闭环控制架构的设计方法;②学习在Simulink中搭建电力电子与控制结合的系统仿真模型;③掌握PI控制器的调节规律及其对系统稳定性、响应速度的影响机制;④为后续开展DC-DC变换器优化、数字电源设计、新能源系统控制等高级课题提供扎实的仿真基础和技术储备。; 阅读建议:建议读者结合Simulink仿真模型同步操作,重点关注控制器设计思路与参数调试过程,通过改变PI参数观察系统动态响应变化,加深对控制理论的理解,并可参照文中方法拓展至其他拓扑结构(如Boost、Buck-Boost)的闭环控制研究。
源码下载地址: https://pan.quark.cn/s/9913fd064955 《QFN封装规格说明及其在PCB布局中的实践意义》 QFN(Quad Flat No-Lead)封装,即四方扁平无引脚封装,是一种在微电子设备中普遍采用的表面安装型元件封装技术。此封装形式因其具备体积极小、重量轻、引脚布局紧凑以及卓越的热传导性能等特点,获得了广泛的应用认可,特别是在高速运作、高效率的集成电路领域展现出突出的优势。本文旨在系统阐述QFN封装的具体规格参数,并深入分析其在PCB布局设计中的关键作用。 QFN封装的核心规格要素涵盖了引脚中心距、封装的横向与纵向尺寸、引脚的竖向高度等。依据呈现的规格示意图可知,QFN封装存在多种不同的规格型号,能够满足各不同用途的元件需求。诸如A0、A1、A3等规格代号代表了封装的中心定位距离或横向宽度,它们各自的最小值与最大值明确界定了封装的最小极限与最大极限,从而保障了与PCB基板的适配性及运行稳定性。以A0规格为例,其数值范围或许介于0.700mm至0.900mm之间,为设计工作提供了相应的调整空间。 D与E参数一般表征封装的斜边长度,揭示了元件实际占据的物理空间,这对布局规划具有决定性影响。D1和E1则描述了封装内部引脚区域的尺寸,影响着引脚的分布格局和数量配置。kb和eL参数则关联到引脚底部的宽度和长度,它们对焊接成效及元件的机械稳固性具有直接影响。比如,kb参数界定了焊盘的最小尺度与最大尺度,而eL参数则规定了焊盘的长度区间,这些因素均直接关联到元件的焊接成效。 在PCB布局设计环节,QFN封装的规格示意图是不可或缺的参考工具。设计人员需依据封装规格精确地布置焊盘,保障元件能够稳固地安装于PCB基板上,同时防止出现短...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值