文档章节

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
PHP自动加载类—__autoload()和spl_autoload_register()

test.php 当前目录下有j.php 正常输出:成功加载 修改test.php代码 运行test.php报错: Warning: require_once(k.php) [function.require-once]: failed to open stream: No such file or d......

晨曦之光
2012/03/09
1K
0
SEAndroid中定义的客体类有哪些?(access_vectors)

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

陈洪波
2015/09/18
0
0
OutputStream-InputStream-FileOutputStream-FileInputStream-BufferedOutputStream-BufferedInputStream

一.OutputStream 类(java.io) 概述:OutputStream类就是专门用于从程序中将数据写入到介质中; 定义:public abstract class OutputStream extends Object implements Closeable, Flushable Ou......

老胡2015
2017/06/22
0
0
Num19-----------IO流

异常处理 throws的方式处理异常 自定义异常的实现和测试 异常的注意事项 File类的创建功能 File类的删除功能 File类的重命名功能 File类的判断功能 File类的获取功能 File类的高级获取功能 ...

萧小蚁
2016/02/19
67
0

没有更多内容

加载失败,请刷新页面

加载更多

计算游戏权重代码

$list = [ [ 'pt' => 1, //权重序号 'pv' => 0, //权重值 ], [ 'pt' => 2, 'pv' => 10, ], [ 'pt' => 3, ......

我才是张先生
3分钟前
0
0
智能分单算法

算法描述 目前在物流,企业用工等领域,都有着大量的通过算法对接到的订单进行智能分配的需求。本文模拟的是用户下订单,然后商家接到订单,由配送人员进行派送的场景。在实际的应用中类似于...

鱼煎
5分钟前
0
0
即将开源 | 2亿用户背后的Flutter应用框架Fish Redux

背景 在闲鱼深度使用 Flutter 开发过程中,我们遇到了业务代码耦合严重,代码可维护性糟糕,如入泥泞。对于闲鱼这样的负责业务场景,我们需要一个统一的应用框架来摆脱当下的开发困境,而这也...

阿里云云栖社区
10分钟前
0
0
Ubuntu上搭建比特币运行环境

Ubuntu版本:16.04.3 Bitcoin Core版本:0.16 1. 比特币运行依赖的开源库 (1)必须依赖的库 库 目的 描述 libssl 加密 随机数生成,椭圆曲线加密算法 libboost 工具 线程库,数据结构等 li...

LoSingSang
15分钟前
1
0
IDE 插件新版本发布,开发效率 “biu” 起来了

近日,Cloud Toolkit正式推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,本文挑选了其中三个重大特性进行解读,点击文末官网跳转链接,可查看详细的版本说明。 本地应用一键部署到任何...

zhaowei121
20分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部