黑马程序员_Java学习日记15_File

AltiumDesigner.zip 立即下载

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

1.File概述

File类
用来将文件或者文件夹封装成对象
方便对文件与文件夹的属性信息进行操作
File对象可以作为参数传递给流的构造函数
了解File类中的常用方法
------------------------------------------------------
File对象功能,创建和删除,判断,获取

import java.io.*;
/*
File类常见方法:
1,创建。
	boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false。
						和输出流不一样,输出流对象一建立创建文件。而且文件已经存在,会覆盖。
	boolean mkdir():创建文件夹。
	boolean mkdirs():创建多级文件夹。
2,删除。
	boolean delete():删除失败返回false。如果文件正在被使用,则删除不了返回false。
	void deleteOnExit();在程序退出时删除指定文件。
3,判断。
	boolean exists() :文件是否存在.
	isFile():
	isDirectory();
	isHidden();
	isAbsolute();
4,获取信息。
	getName():
	getPath():
	getParent():
	getAbsolutePath() 
	long lastModified() 
	long length() 
*/
class FileDemo 
{
	public static void main(String[] args) throws IOException
	{
		method_5();
	}

	public static void method_5()
	{
		File f1 = new File("c:\\Test.java");
		File f2 = new File("d:\\hahah.java");

		sop("rename:"+f2.renameTo(f1));
	}

	public static void method_4()
	{
		File f = new File("file.txt");
		sop("path:"+f.getPath());
		sop("abspath:"+f.getAbsolutePath());
		sop("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录。如果获取的是相对路径,返回null。
					//如果相对路径中有上一层目录那么该目录就是返回结果。
	}
	
	public static void method_3()throws IOException
	{
		File f = new File("d:\\java1223\\day20\\file2.txt");

		//f.createNewFile();

		//f.mkdir();
		//记住在判断文件对象是否是文件或者目的时,必须要先判断该文件对象封装的内容是否存在。
		//通过exists判断。
		sop("dir:"+f.isDirectory());
		sop("file:"+f.isFile());

		sop(f.isAbsolute());
	}

	public static void method_2()
	{
		File f = new File("file.txt");

		//sop("exists:"+f.exists());
		//sop("execute:"+f.canExecute());
		//创建文件夹
		File dir = new File("abc\\kkk\\a\\a\\dd\\ee\\qq\\aaa");

		sop("mkdir:"+dir.mkdirs());
	}
	
	public static void method_1()throws IOException
	{
		File f = new File("file.txt");
//		sop("create:"+f.createNewFile());
		//sop("delete:"+f.delete());
	}

	//创建File对象
	public static void consMethod()
	{
		//将a.txt封装成file对象。可以将已有的和为出现的文件或者文件夹封装成对象。
		File f1 = new File("a.txt");
		
		File f2 = new File("c:\\abc","b.txt");

		File d = new File("c:\\abc");
		File f3 = new File(d,"c.txt");

		sop("f1:"+f1);
		sop("f2:"+f2);
		sop("f3:"+f3);

		File f4 = new File("c:"+File.separator+"abc"+File.separator+"zzz"+File.separator+"a.txt");
	}

	public static void sop(Object obj)
	{
		System.out.println(obj);
	}
}

2. File对象功能,文件列表1,2

import java.io.*;

class  FileDemo2
{
	public static void main(String[] args) 
	{
		File dir = new File("c:\\");
		File[] files = dir.listFiles();

		for(File f : files)
		{
			System.out.println(f.getName()+"::"+f.length());
		}		
	}

	public static void listDemo_2()
	{
		File dir = new File("d:\\java1223\\day18");

		String[] arr = dir.list(new FilenameFilter()
		{
			public boolean accept(File dir,String name)
			{

//				/System.out.println("dir:"+dir+"....name::"+name);
				/*
				if(name.endsWith(".bmp"))
					return true;
				else
				return false;
				*/
				return name.endsWith(".bmp");

			}
		});

		System.out.println("len:"+arr.length);
		for(String name : arr)
		{
			System.out.println(name);
		}
	}

	public static void listDemo()
	{
		File f = new File("c:\\abc.txt");

		String[] names = f.list();//调用list方法的file对象必须是封装了一个目录。该目录还必须存在。
		for(String name : names)
		{
			System.out.println(name);
		}
	}
	public static void listRootsDemo()
	{
		File[] files = File.listRoots();

		for(File f : files)
		{
			System.out.println(f);
		}
	}
}

3.列出目录下所有内容,递归
列出目录下所有内容--带层次

/*
列出指定目录下文件或者文件夹,包含子目录中的内容。
也就是列出指定目录下所有内容。

因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可。
在列出过程中出现的还是目录的话,还可以再次调用本功能。
也就是函数自身调用自身。
这种表现形式,或者编程手法,称为递归。

递归要注意:
1,限定条件。
2,要注意递归的次数。尽量避免内存溢出。
*/
import java.io.*;
class FileDemo3 
{
	public static void main(String[] args) 
	{
		File dir = new File("d:\\testdir");
		showDir(dir,0);

		//toBin(6);
		//int n = getSum(8000);
		//System.out.println("n="+n);

		System.out.println(dir.delete());
	}
	public static String getLevel(int level)
	{
		StringBuilder sb = new StringBuilder();
		sb.append("|--");
		for(int x=0; x<level; x++)
		{
			//sb.append("|--");
			sb.insert(0,"|  ");
		}
		return sb.toString();
	}
	public static void showDir(File dir,int level)
	{
		System.out.println(getLevel(level)+dir.getName());

		level++;
		File[] files = dir.listFiles();
		for(int x=0; x<files.length; x++)
		{
			if(files[x].isDirectory())
				showDir(files[x],level);
			else
				System.out.println(getLevel(level)+files[x]);
		}
	}

	public static int getSum(int n)
	{
		if(n==1)
			return 1;
		return n+getSum(n-1);
	}

	public static void toBin(int num)
	{
		if(num>0)
		{
			toBin(num/2);
			System.out.println(num%2);
		}
	}

	public static void method()
	{
		method();
	}
}


4.删除带内容的目录

/*
删除一个带内容的目录。
删除原理:在window中,删除目录从里面往外删除的。
既然是从里往外删除。就需要用到递归。
*/
import java.io.*;
class  RemoveDir
{
	public static void main(String[] args) 
	{
		File dir = new File("d:\\testdir");
		removeDir(dir);
	}

	public static void removeDir(File dir)
	{
		File[] files = dir.listFiles();
		
		for(int x=0; x<files.length; x++)
		{
//			if(!files[x]isHidden()&&files[x].isDerectory())   //文件遍历时有时要注意隐藏文件
			if(files[x].isDirectory())
				removeDir(files[x]);
			else
				System.out.println(files[x].toString()+":-file-:"+files[x].delete());
		}
		System.out.println(dir+"::dir::"+dir.delete());
	}

}

5.创建Java文件列表

/*
练习
将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
建立一个java文件列表文件。

思路:
1,对指定的目录进行递归。
2,获取递归过程所以的java文件的路径。
3,将这些路径存储到集合中。
4,将集合中的数据写入到一个文件中。

*/
import java.io.*;
import java.util.*;
class  JavaFileList
{
	public static void main(String[] args) throws IOException
	{
		File dir = new File("d:\\java1223");

		List<File> list = new ArrayList<File>();

		fileToList(dir,list);

		//System.out.println(list.size());

		File file = new File(dir,"javalist.txt");
		writeToFile(list,file.toString());
	}
	public static void fileToList(File dir,List<File> list)
	{
		File[] files = dir.listFiles();

		for(File file : files)
		{
			if(file.isDirectory())
				fileToList(file,list);
			else
			{
				if(file.getName().endsWith(".java"))
					list.add(file);
			}
		}
	}

	public static void writeToFile(List<File> list,String javaListFile)throws IOException
	{
		BufferedWriter bufw =  null;
		try
		{
			bufw = new BufferedWriter(new FileWriter(javaListFile));
			
			for(File f : list)
			{
				String path = f.getAbsolutePath();
				bufw.write(path);
				bufw.newLine();
				bufw.flush();
			}

		}
		catch (IOException e)
		{
			throw e;
		}
		finally
		{
			try
			{
				if(bufw!=null)
					bufw.close();
			}
			catch (IOException e)
			{
				throw e;
			}
		}
	}
}











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

详细请查看:http://edu.youkuaiyun.com/heima

风储VSG-基于虚拟同步发电机的风储并网系统Simulink仿真 内容概要:本文介绍了“Plecs全桥LLC谐振变换器仿真模型”这一技术资源,聚焦于隔离型全桥LLC谐振变换器的建模、仿真与参数设计,涵盖其在电力电子系统中的关键应用,如软启动、闭环控制、变频控制及效率优化等。该模型支持对LLC变换器在不同工作模式下的动态响应与性能表现进行深入研究,适用于探究谐振拓扑结构、磁性元件设计、谐振参数匹配以及先进控制策略的科研与工程实践。同时,文档配套提供了仿真模型、设计报告与计算书等完整资料,强化了其实用性与教学价值。; 适合人群:具备电力电子、自动化或电气工程等相关专业背景,从事电力电子变换器研发、系统仿真与控制算法设计的科研人员、工程师及研究生。; 使用场景及目标:①用于全桥LLC谐振变换器的建模、仿真与动态性能分析;②支持对软启动过程、闭环稳压控制、变频调谐及效率优化等核心技术的研究与教学;③为电力电子电源系统的工程设计、参数优化与控制策略验证提供高精度仿真平台。; 阅读建议:建议结合Plecs或Simulink等仿真工具进行动手实践,重点理解电路拓扑构建、谐振参数计算、控制器设计与系统稳定性分析,并配合文档中的设计报告与计算书,系统掌握从理论到仿真的完整流程。 立即下载

相关推荐

国央企创新负责人如何通过平台实现科技创新资源的系统集成与高效配置?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

黑马程序员-学习日记15(IO流 3 )

-------android培训、java培训、期待与您交流! ----------     .File类(java.io包):   1)用来将文件或者文件夹封装成对象   2)方便对文件与文件夹的属性信息进行操作。//流只能操作数据。   3)File对象可以作为参数传递给流的构造函数。   4)了解File类中的常用方法。  2.深入介绍File类   1)文件和目录

211

宝塔面板一键部署Z-Blog博客 - 内网穿透实现公网访问

Ubuntu系统作为Linux系统的一个重要分支,既有Linux系统的轻量化、高扩展性和长时间稳定运行,也拥有Windows一样的友好图形界面,因此可以作为熟悉服务器系统的良好选择。对于笔者来说,ubuntu系统最大的用处,就是可以让家里老旧的电脑重焕生机,让本已退居二线的电脑与cpolar内网穿透软件搭配,成为私人服务器,搭建自己喜欢的各种网站。今天,笔者就为大家介绍,如何使用cpolar内网穿透+Z-blog搭建私人博客网站。

m0_74808907的博客 3147

黑马程序员--【学习日记八】——IO流

知识列表 IO概述字符流IO异常FileReader复制文本文件BufferedWriterBufferedReaderInputStream和OutputStream复制图片文件 1)IO概述 字符流和字节流。 字节流两个基类:  InputStream?? OutputStream 字符流两个基类:  Reader Writer 2)字符流

u013587258的专栏 526

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

V-REP(Cooprliesim EDU)自学笔记 实现UR5机械臂末端按轨迹移动

xu_white的博客 7583

FDTD仿真进阶:液晶偏振调控与双折射效应全解析

本文深入解析了在Lumerical FDTD仿真中如何对液晶材料进行偏振调控与双折射效应建模。通过单轴液晶和螺旋扭曲液晶(TN-LCD)两大实战案例,详细阐述了从各向异性材料参数设置、LC网格属性配置到偏振椭圆分析的全流程,帮助工程师精准模拟液晶的光开关行为,优化如显示器等器件的光学性能。

chair的专栏 746

黑马程序员_Java学习日记25_高新技术4

----------------------android培训、java培训、期待与您交流! --------------------- 泛型 1.入门泛型的基本应用 JDK1.5的集合类希望你在定义集合时,明确表示你要向集合中存储哪种类型的数据,无法加入指定类型以外的数据。 ArrayList collection = new ArrayList(); collection.

cdestiny的专栏 1726

SDIO协议

SDIO协议1 概述  SDIO,全称:Secure Digital Input and Output ,即安全数字输入输出接口。2 特点①与多媒体卡系统规格书版本4.2全兼容。支持三种不同的数据总线模式:1位(默认)、4位和8位。②与较早的多媒体卡系统规格版本全兼容(向前兼容)。③与SD存储卡规格版本2.0全兼容。④与SD I/O卡规格版本2.0全兼容:支持两种不同的数据总线模式:1位(默认)和4

Let the development board fly! 3万+

黑马程序员_Java学习日记26_高新技术5

----------------------android培训、java培训、期待与您交流! --------------------- 1.类加载器 简要介绍类加载器的概念和作用 Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器,每个类负责加载特定位置的类:BootStrap,ExtClassLoader,AppClassLoader 类加载器也是J

cdestiny的专栏 1575

Tushare Day2——了解stock_basic数据并根据行业和地区进行统计

了解stock_basic数据 1  stock_basic基础信息2  导入包和stock_basic数据、查看基本信息3  根据行业列进行统计3.1  1.先把不同行业列举出来,看一下一共有多少种行业3.2  2.统计每个行业分别有多少家公司3.3  3.把行业从array的二维数组形式变成list形式3.4  4.把行业从list形式转换成文本形式3.5&nbsp

绒绒的Routine 2796

51单片机计算器(源程序+流程图+答辩报告+综合设计)

保姆级讲解!C语言编程,使用51单片机及LCD1602显示屏实现!

m0_57007304的博客 2万+

黑马程序员_Java学习日记23_高新技术2

----------------------android培训、java培训、期待与您交流! --------------------- 1.反射概述 Class类代表Java类,它的各个实例对象又分别对应什么? a.对应各个类在内存中的字节码。 b.一个类被类加载器加载到内存中,占用一片存储空间,这个空间里面的内容就是类的字节码,不同的类的字节码是不同的,所以他们在内存中的内容是

cdestiny的专栏 987

2024全国村级行政边界数据

五级行政区划:村边界数据产品涵盖五级行政区划:(一级行政区)省级行政区共31个其中:(台湾、香港、澳门除外);(二级行政区)地级行政区共334个其中:7个地区、3个盟、30个自治州、294个地级市;(三级行政区)县级行政区共2851个其中:1355个县、117个自治县、49个旗、3个自治旗、363个县级市、962个市辖区、1个林区、1个特区;(四级行政区)乡级行政区共40497个其中:11626个乡、1034个民族乡、20117个镇、7566个街道、151个苏木、1个民族苏木、2个县辖区公所;

J_Giser的博客 3232

黑马程序员_Java学习日记2_面向对象总结1

----------------------android培训、java培训、期待与您交流! --------------------- 1.关于main函数的讲解 主函数,是一个特殊的函数,作为程序的入口,可以被jvm调用。 主函数的定义: public:代表该函数的权限是最大的 static:代表着主函数随着类的加载就已经存在了。 void:主函数没有具体的返回值。 main

cdestiny的专栏 840

《计算机视觉:从入门到精通》技术手册 第1章 计算机视觉概述与历史演进

视觉感知与机器视觉在工程实践中常被混用,但二者存在本质差异。视觉感知强调对光学信号的语义理解与场景解释,核心在于从二维投影重建三维世界的物理与语义属性。该领域关注遮挡处理、光照变化、材质反射等复杂因素的建模,其目标是实现类似人类视觉系统的场景理解能力。机器视觉则侧重于工业场景中的精密测量与控制,通常基于结构化光源、已知几何约束与标定参数,执行边缘检测、尺寸测量、位置定位等任务。前者面向开放环境的通用理解,后者面向受控环境的精确执行。

u012133341的博客 269

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

黑马程序员_Java学习日记21_正则表达式

----------------------android培训、java培训、期待与您交流! --------------------- 1.正则表达式:符合一定规则的表达式。 作用:用于专门操作字符串。 特点:用于一些特定的符号来表示一些代码操作。这样就简化书写。 所以学习正则表达式,就是在学习一些特殊符号的使用。 好处:可以简化对字符串的复杂操作。 弊端:符号定义越多,正则

cdestiny的专栏 557

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

黑马程序员_Java学习日记10_集合框架2

----------------------android培训、java培训、期待与您交流! --------------------- 1.Map集合 Map |--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。 |--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。

cdestiny的专栏 536

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

黑马程序员_Java学习日记17_IO流5

----------------------android培训、java培训、期待与您交流! --------------------- 1.Properties简述 存取,存取配置文件 /* Properties是hashtable的子类。 也就是说它具备map集合的特点。而且它里面存储的键值对都是字符串。 是集合中和IO技术相结合的集合容器。 该对象的特点:可以用于键值

cdestiny的专栏 533

黑马程序员_Java学习日记22_高新技术1

----------------------android培训、java培训、期待与您交流! --------------------- 1.java5的静态导入与编译器语法设置 import 语句导入一个类或某个包中的所有类 import static  语句导入一个类中的某个静态方法或所有静态方法 新特性的使用,需要jdk1.5以上的版本。 ex: import stat

cdestiny的专栏 532

黑马程序员_Java学习日记24_高新技术3

----------------------android培训、java培训、期待与您交流! --------------------- 1.javabean和内省 由内省引出JavaBean的讲解 IntroSpector--》内省的英文由来 JavaBean,特殊的Java类,按照特殊的规则构成 对JavaBean的简单内省操作 内省--》了解JavaBea

cdestiny的专栏 529

黑马程序员_Java学习日记20_Socket编程2

----------------------android培训、java培训、期待与您交流! --------------------- 1.TCP,上传图片 /* 需求:上传图片。 客户端。 1,服务端点。 2,读取客户端已有的图片数据。 3,通过socket 输出流将数据发给服务端。 4,读取服务端反馈信息。 5,关闭。 */ import java.io.*; import jav

cdestiny的专栏 509

黑马程序员_Java学习日记28_银行业务调度系统

----------------------android培训、java培训、期待与您交流! --------------------- 1.系统需求 模拟实现银行业务调度系统逻辑,具体需求如下: 银行内有6个业务窗口,1 - 4号窗口为普通窗口,5号窗口为快速窗口,6号窗口为VIP窗口。 有三种对应类型的客户:VIP客户,普通客户,快速客户(办理如交水电费、电话费之类业务的客户)。

cdestiny的专栏 477

黑马程序员_Java学习日记12_IO流1

----------------------android培训、java培训、期待与您交流! --------------------- 1.IO流概述(Input,Output) IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流和字符流 流按流向分为:输入流,输出流 字符流的由来: a 9

cdestiny的专栏 470

黑马程序员_Java学习日记27_交通灯管理系统

----------------------android培训、java培训、期待与您交流! --------------------- 1.系统需求 模拟实现十字路口的交通灯管理系统逻辑,具体需求如下: 异步随机生成按照各个路线行驶的车辆。 例如:        由南向而来去往北向的车辆 ---- 直行车辆        由西向而来去往南向的车辆 ---- 右转车辆

cdestiny的专栏 460

黑马程序员_Java学习日记14_IO流3

----------------------android培训、java培训、期待与您交流! --------------------- 1.IO流,字节流File读写操作 字符流: FileReader FileWriter。 BufferedReader BufferedWriter 字节流: InputStream  OutputStream 需求,想要操作图片数据

cdestiny的专栏 447

黑马程序员_Java学习日记18_GUI

----------------------android培训、java培训、期待与您交流! --------------------- 1.GUI 概述 GUI,图形用户界面 GUI:Graphical User Interface,图形用户接口 用图形的方式,来显示计算机操作的界面,这样更方便更直观。 CLI:Command line User Interface,命令行用户接口

cdestiny的专栏 417
上一篇: 黑马程序员_Java学习日记14_IO流3
下一篇: 黑马程序员_Java学习日记16_IO流4
cdestiny
博客等级 码龄14年 12粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值