Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)
1. File常用的构造
- File file = new File("字符串路径");
File f = new File("D:\\a\\b.txt");
- File file = new File("父路径的字符串表现形式","子路径的字符串表现形式");
File f2 = new File("D:\\a","b.txt");
- File file = new File(父路径的File对象,"子路径的字符串表现形式")
File parent = new File("D:\\a");
File f3 = new File(parent,"b.txt");
2. File创建功能
- boolean createNewFile():指定路径不存在该文件时时创建文件,返回true,否则返回false
- boolean mkdir():当指定的单级文件夹不存在时创建文件夹并返回true,否则返回false
- boolean mkdirs():当指定的多级文件夹某一级文件夹不存在时,创建多级文件夹并返回true,否则返回false
注意事项:
不要以扩展名去区分文件或者文件夹;
3. File的删除功能
- boolean delete():删除文件或者删除单级文件夹
注意事项:
1.如果文件夹里面还有内容,不能删除成功;
2.不走回收站;
4.判断方法
- boolean exists():判断指定路径的文件或文件夹是否存在
- boolean isAbsolute():判断当前路路径是否是绝对路径
- boolean isDirectory():判断当前的目录是否存在
- boolean isFile():判断当前路径是否是一个文件
- boolean isHidden():判断当前路径是否是隐藏文件
5.获取功能和修改名字功能
- File getAbsoluteFile():获取文件的绝对路径,返回File对象
- String getAbsolutePath():获取文件的绝对路径,返回路径的字符串
- String getParent():获取当前路径的父级路径,以字符串形式返回该父级路径
- File getParentFile():获取当前路径的父级路径,以字File对象形式返回该父级路径
- String getName():获取文件或文件夹的名称
- String getPath():获取File对象中封装的路径
- long lastModified():以毫秒值返回最后修改时间
- long length():返回文件的字节数
- boolean renameTo(File dest): 将当前File对象所指向的路径 修改为 指定File所指向的路径
6.其他获取功能
- String[] list():以字符串数组的形式返回当前路径下所有的文件和文件夹的名称
- File[] listFiles():以File对象的形式返回当前路径下所有的文件和文件夹的名称
- static File[] listRoots():获取计算机中所有的盘符
案例一:输出指定目录下所有的java文件名(包含子目录)
import java.io.File;
/*
* 需求:输出指定目录下所有的java文件名(包含子目录)
*/
public class RecurrenceTest {
public static void main(String[] args) {
File f = new File("src");
//File f = new File("src\\com\\itheima_01\\RecurrenceDemo.java");
method(f);
}
public static void method(File file) {
if(file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
//判断是否是文件对象
if(f.isFile()) {
if(f.getName().endsWith(".java")) {
System.out.println(f.getName());
}
}
else if(f.isDirectory()){
//是一个目录对象
method(f);
}
}
}
}
//输出指定目录下的所有java文件名(不包含子目录)
public static void method2(File file) {
if(file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
//判断是否是文件对象
if(f.isFile()) {
if(f.getName().endsWith(".java")) {
System.out.println(f.getName());
}
}
}
}
}
}
案例二:删除指定的目录(包含子目录)
import java.io.File;
/*
* 需求:删除指定的目录(包含子目录)
*
* 注意:如果要删除一个目录,则需要先删除这个目录下的所有子文件和子目录
*
*/
public class RecurrenceTest2 {
public static void main(String[] args) {
File f = new File("d:\\a");
method(f);
}
//删除指定目录下所有文件和目录
public static void method(File file) {
if(file.isDirectory()) {
//干掉自己所有的子文件和子目录
//获取所有的子文件和子目录
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile()) {
//直接干掉他
System.out.println(f.getName());
f.delete();
}
else if(f.isDirectory()) {
//继续查看是否还有文件和子目录
method(f);
}
}
//干掉自己
System.out.println(file.getName());
file.delete();
}
}
}
Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)的更多相关文章
- Java IO流中的File类学习总结
一.File类概述 File类位于java.io包中,是对文件系统中文件以及文件夹进行封装的对象,可以通过对象的思想来操作文件和文件夹. File类有多种重载的构造方法.File类保存文件或目录的各种 ...
- Java基础-IO流对象之File类
Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下 ...
- Java IO流操作汇总: inputStream 和 outputStream【转】
我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ...
- Java 基础(三)| IO流之使用 File 类的正确姿势
为跳槽面试做准备,今天开始进入 Java 基础的复习.希望基础不好的同学看完这篇文章,能掌握泛型,而基础好的同学权当复习,希望看完这篇文章能够起一点你的青涩记忆. 一.什么是 File 类? java ...
- JAVA IO分析一:File类、字节流、字符流、字节字符转换流
因为工作事宜,又有一段时间没有写博客了,趁着今天不是很忙开始IO之路:IO往往是我们忽略但是却又非常重要的部分,在这个讲究人机交互体验的年代,IO问题渐渐成了核心问题. 一.File类 在讲解File ...
- java IO流技术 之 File
IO流技术 概念:input - output 输入输出流: 输入:将文件读到内存中: 输出:将文件从内存中写出到其他地方 作用:主要就是解决设备和设备之间的数据传输问题. File :文件类的使用十 ...
- 01 语言基础+高级:1-8 File类与IO流_day08【 File类、递归】
day08[File类.递归] 主要内容 File类 递归 教学目标 能够说出File对象的创建方式 能够说出File类获取名称的方法名称 能够说出File类获取绝对路径的方法名称 能够说出File类 ...
- java+++IO流操作
序:IO流的操作主要分为两种读和写.一方面:我们可以通过不加缓冲类字符流BufferedReader/Writer和字节流BufferedInputStream/OutputStream来进行简单的读 ...
- IO流学习之File类
File类 Java文件类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等. File对象代表磁盘中实际存在的文件和目录.就是把文件和目录转换成对象,读取到内 ...
随机推荐
- matlab练习程序(快速搜索随机树RRT)
RRT快速搜索随机树英文全称Rapid-exploration Random Tree,和PRM类似,也是一种路径规划算法. 和PRM类似,算法也需要随机撒点,不过不同的是,该算法不是全局随机撒点,而 ...
- .NET via C#笔记12——泛型
12 泛型 使用值类型作为参数的泛型容器,传入值类型的参数时,不需要进行装箱 12.1 FCL中的泛型 System.Array中提供了很多泛型方法 AsReadOnly BinarySearch C ...
- 32位CPU和64位CPU 区别
操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的CPU设计. 64位操作系统针对的64位的CPU设计.操作系统只是硬件和应用软件中间的一个平台. 32位操作系统针对的32位的C ...
- tensorflow学习笔记(三)常用函数
上一篇简单介绍了tensorflow的基本操作,这一篇介绍一些常用的函数. tf.constant() tf.constant ( value , dtype = None , shape = Non ...
- Vulkan SDK 之 Shaders
Compiling GLSL Shaders into SPIR-V 1.SPIR-V 是vulkan的底层shader语言.GLSL可以通过相关接口转换为SPIR-V. Creating Vulka ...
- 死循环(endless loop)
死循环 死循环就是一个无法结束的循环.(endless loop / infinite loop) 出现死循环是因为没有设置好结束条件,循环的结束条件很重要,要充分考虑各种边界情况. 以上一篇随笔中的 ...
- 四十五、SAP中Message的管理
一.事务代码SE91 二.输入相关名字,点击创建 三.输入内容 四.定义成本地对象 五.在消息中添加一条短文本 六.我们代码如下 七.执行
- mysql第六篇 : MySQL索引原理与慢查询优化
浏览目录 一.索引介绍 二.索引方法 三.索引类型 四.聚合索引和辅助索引 五.测试索引 六.正确使用索引 七.组合索引 八.注意事项 九.查询计划 十.慢日志查询 十一.大数据量分页优化 一.索引介 ...
- Mysql:分支结构—case结构
case结构 情况一:类似于家擦中的switch语句 一般用于实现等值判断 语法: CASE 变量|表达式|字段 WHEN 要判断的值 THEN 返回的值1或语句1; WHEN 要判断的值 THEN ...
- tornado反向解析
tornado反向解析 在路由中添加name属性,并且不能使用元组路由,应当由tornado.web.url定义路由. app = tornado.web.Application([ (r'/', I ...