文档章节

File文件类

centrald
 centrald
发布于 2016/01/29 20:30
字数 918
阅读 69
收藏 5

File:    

构造方法:

  public File(String pathname) 使用文件路径创建一个File对象

  public File(String parent, String child) 使用父文件路径和子文件或者子文件路径创建一个File对象

  public File(File parent, String child) 使用父文件对象和子文件或者子文件路径创建一个File对象 

File类中和创建功能相关的方法

public boolean createNewFile(): 创建一个新的文件, 如果没有就创建一个,如果有就不创建

public boolean mkdir(): 创建目录 , 如果没有就创建一个,如果有就不创建

public boolean mkdirs(): 创建多级文件夹 , (也可以创建单级文件夹)

注:

绝对路径: 以盘符开始的路径

相对路径: 就是不是以盘符开始的路径就是相对路径

File类中和删除功能相关的方法

public boolean delete(): 删除文件或者文件夹

 注: 

                删除的时候不走回收站

File类中和重命名相关的方法

   public boolean renameTo(File dest):把文件重命名为指定的文件路径

 注: 

                如果目标文件的路径和原文件的路径一致,那么就是重命名

                如果不一致就进行重命名,然后剪切

 File类中和判断功能相关的方法

  public boolean isDirectory(): 判断是否是目录

public boolean isFile(): 判断是否是文件

public boolean exists(): 判断是否存在

public boolean canRead(): 判断是否可读

public boolean canWrite(): 判断是否可写

public boolean isHidden(): 判断是否隐藏

File类中和获取功能相关的方法

  public String getAbsolutePath(): 获取文件的绝对路径

public String getPath(): 获取相对路径

public String getName(): 获取文件名称

public long length(): 获取文件的大小 , 单位是字节

public long lastModified(): 获取最后一次修改时间

public String[] list(): 获取的是指定路径下所有的文件和文件夹对应的名称数组

public File[] listFiles(): 获取的是指定的路径下所有的文件和文件夹对应的File数组

举两个简单的例子:

1.获取指定目录下的指定文件

import java.io.File;

/*
 * 编写程序,获取指定目录下 所有的.java结尾的文件, 打印出文件的绝对路径(包含 子文件夹中的.java文
 * 
 * 思路:使用递归的方法
 * 	1.获取指定目录
 * 		1>如果是以.java结束的文件,则打印其绝对路径
 * 		2>如果是文件夹
 * 			(1)以.java结束的文件,打印其绝对路径
 * 			(2)如果是文件夹,则1
 */		
public class RecursionFileDemo {
	public static void main(String[] args) {
		//将指定目录封装成File对象
		File file = new File("E:\\code");
		//使用方法递归求指定路径下的文件
		RecursionFileFun(file);
	}
	//定义递归方法
	public static void RecursionFileFun( File file){
		
		//获取目录下所有文件对象
		File[] list = file.listFiles();
		for(File l:list){
			if(l.isFile()){
//				System.out.println(l.getName());
				//如果文件以.java结尾,则将其打印出来
				if(l.getName().endsWith(".java")){
					System.out.println(l.getAbsoluteFile());
				}
			}
			//如果是文件夹,则将其递归调用
			else{
				RecursionFileFun(l);
			}
		}
	}
}
/*
 * E:\code\MyName.java
E:\code\Test.java
 */

2.模拟rm -fr 递归删除文件夹下的文件

import java.io.File;

/*
 编写程序,删除 指定目录下的 所有文件与文件夹  (包含子文件夹) 
 */
public class RecursionFileDemo2 {
	public static void main(String[] args) {
		//将指定目录封装为File对象
		File file = new File("E://code");
		RecursionFileFun(file);
	}

	public static void RecursionFileFun(File file) {
		// TODO Auto-generated method stub
		//获取指定路径下的文件对象数组
		File[] list = file.listFiles();
		for(File l:list){
			//如果是文件,则将其直接删除
			if(l.isFile()){
				l.delete();
			}
			else{
				RecursionFileFun(l);
				//删除文件夹
				l.delete();
			}
			
		}
		
	}
	
}


© 著作权归作者所有

共有 人打赏支持
上一篇: 集合(四)Map
下一篇: I/O流(一)
centrald
粉丝 13
博文 112
码字总数 120823
作品 0
杭州
程序员
私信 提问
探究java IO之File类

尽管java.io定义的大多数类用于操作流,但File类却不是。File类直接处理文件和文件系统。也就是说,File类没有指定如何从文件检索信息以及如何向文件中存储信息,而是描述了文件本身的属性。...

柳哥
2014/11/13
0
1
java.IO.File类详解

JDK1.0就存在的File类:用于对文件进行一般性操作。由于NIO中有对File对象进行改善,现在对其进行一般性说明。 File类有四个构造函数:(都必须传入路径地址String或者Path)   File(String...

marjey
2016/10/25
111
1
SEAndroid中定义的客体类有哪些?(access_vectors)

版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/48548059 SEAndroid中定义的客体类 我们看一下SEAndroid官方源码中,external/sepo...

陈洪波
2015/09/18
0
0
PHP自动加载类—__autoload()和spl_autoload_register()

test.php 当前目录下有j.php 正常输出:成功加载 修改test.php代码 运行test.php报错: Warning: requireonce(k.php) [function.requir...

晨曦之光
2012/03/09
1K
0
Java输入输出流 1

1.什么是IO Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。Java的I/O流提供了读写数据的标...

乔三爷
2015/08/29
92
0

没有更多内容

加载失败,请刷新页面

加载更多

剖析Elasticsearch的IndexSorting:一种查询性能优化利器

摘要: 前言 前两周写过一篇《基于Lucene查询原理分析Elasticsearch的性能》,在最后留了一个彩蛋,说下一篇会介绍一种可以极大的优化查询性能的技术。本文就来介绍这种技术——IndexSortin...

阿里云官方博客
31分钟前
1
0
Go 使用channel控制并发

前言 channel一般用于协程之间的通信,channel也可以用于并发控制。比如主协程启动N个子协程,主协程等待所有子协程退出后再继续后续流程,这种场景下channel也可轻易实现。 场景示例 总结 ...

恋恋美食
56分钟前
3
0
斐波那契堆的理解,节点mark属性和势函数

斐波那契堆 看了好多博客,都是照搬算法导论的内容,没有自己的理解,比如为什么有mark属性,势函数的作用,以及为什么叫斐波那契堆,下面说说鄙人的理解。 势函数 势函数是根节点个数加上2...

杨喆
今天
7
0
NIO源码详解

阻塞io和无阻塞io: 阻塞io是指jdk1.4之前版本面向流的io,服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒 ...

沉稳2018
今天
2
0
如何把已经提交的commit, 从一个分支放到另一个分支

在本地master提交了一个commit(8d85d4bca680a5dbcc3e5cfb3096d18cd510cc9f),如何提交的test_2分之上? git checkout test_2git cherry-pick 8d85d4bca680a5dbcc3e5cfb3096d18cd510cc9f......

stephen_wu
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部