File类

1.   File类的概述

文件和路径名的抽象表现形式

2.   构造方法

public File(String pathname):给定一个文件的抽象路径表现形式,开发中常用

public File(String parent,Stringchild):参数一:指定当前文件夹的名称,参数二:该文件夹下的文件

public File(File parent,String child):参数一:file对象,参数二:表示具体文件

3. File类里面常用的一些方法

public booleancreateNewFile():创建文件,如果该文件存在了,就不用创建了,执行该方法会抛出一个异常IOException

publicboolean mkdir():创建文件夹

publicboolean mkdir():创建多个文件夹

publicBoolean delete():删除此抽象路径名表示的文件或目录

delete方法只能删除空目录,如果该目录有内容(文件或文件夹,那么只能先删除内容再删除最外层)

如果在写文件或文件夹的时候没有写盘符,那么默认在当前项目下创建

publicboolean renameTo(File dest):重命名

     注意:如果两个文件的抽象路径名称一致,只是改名

如果两个文件的抽象路径名称不一致,不仅改名,还要剪切

import java.io.File;

 

public class FileDemo2 {

publicstatic void main(String[] args) {

      Filefile=new File("高圆圆.jpg");

      Filefile2=new File("e:\\夏红.jpg");

      System.out.println(file.renameTo(file2));

}

}

代码:
public class FileDemo {
	public static void main(String[] args) throws IOException {
		//创建File对象
		File file=new File("e:\\demo");
		System.out.println("mkdir:"+file.mkdir());
		File file2=new File(file,"java.txt");
		System.out.println("creatNewFile:"+file2.createNewFile());
		File file3=new File("e:\\aaa\\bbb\\ccc");
		System.out.println("mkdirs:"+file3.mkdirs());
//		File file4=new File("e:\\dd\\c.txt");
//		System.out.println(file4.createNewFile());//java.io.IOException: 系统找不到指定的路径。
		File file5=new File("d.txt");
		System.out.println("creatNewFile:"+file5.createNewFile());
//		System.out.println("delete:"+file5.delete());
		File file6=new File("aaa\\bbb\\ccc");
		System.out.println("mkdirs:"+file6.mkdirs());
		System.out.println("delete:"+file6.delete());
	}

}

4  File类中的判断类

publicboolean isDirector():判断该文件是否是一个文件夹:重点

publicboolean isFile():判断文件是否是一个标准文件

publicboolean isHidden():判断文件是否是一个隐藏文件

publicboolean canRead():判断文件是可读

publicboolean canWrite():判断文件是否可写

代码:

public class FileDemo3 {
	public static void main(String[] args) {
		File file=new File("d.txt");
		System.out.println("isDetactor:"+file.isDirectory());
		System.out.println("isFile:"+file.isFile());
		System.out.println("isHidden:"+file.isHidden());
		System.out.println("canRead:"+file.canRead());
		System.out.println("canWrite:"+file.canRead());
	}
}


5.  File类中的高级功能

publicString[] list():获取当前盘符下所有文件或文件夹的字符串名称数组

pubic  File [] listFiles():获取当前盘符下所有文件或文件夹的File名称数组,常用、

代码:

public class FileDemo {
	public static void main(String[] args) {
		//获取e盘下根目录的所有的文件以及文件夹的名称
		//将e盘根目录封装成一个File对象
		File file = new File("e:\\");
		
		//public String[] list():获取当前盘符下的所有的文件以及文件夹的字符串数组
		String[] strArray = file.list();
		//增强for遍历
		for(String s : strArray){
			System.out.println(s);
		}
		
		System.out.println("----------------------");
		
		File[] fileArray = file.listFiles() ;
		for(File f : fileArray){
			System.out.println(f.getName());
		}
	}
}

6. File类中的获取功能: 基本获取功能

     publicString getAbsolutePath():获取当前文件的绝对路径

     publicString getPath():相对路径

     publicString getName():获取文件或者目录的名称

     publiclong length():获取文件内容的长度

     publiclong lastModified():最后一次修改这个文件的时间(时间毫秒值)

代码:

public class FileDemo {
	public static void main(String[] args) {
		//将a.txt文件封装成一个file对象
		File file = new File("a.txt") ;
		
		//public String getAbsolutePath():D:\Java\JavaEE\code\day16\a.txt
		System.out.println("getAbsolutePath:"+file.getAbsolutePath());
		//public String getPath()
		System.out.println("getPath:"+file.getPath());//a.txt
		//public String getName():获取文件或者目录的名称
		System.out.println("getName:"+file.getName());
		//public long length():获取文件内容的长度
		System.out.println("length:"+file.length());
		//public long lastModified()
		System.out.println("lastModified:"+file.lastModified());
		//1502948146592 时间毫秒值
		
		//Date日期对象 ---String :日期的文本表现形式
//		创建日期对象
		Date d = new Date(1502948146592L) ;
		
		//创建SimpleDateFormat对象
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;
		
		//格式化
		String s = sdf.format(d) ;
		System.out.println(s);//2017-08-17 13:35:46
		
	}
}


7.练习

判断d盘目录下是否有”.bin”文件,有就输出

方法一代码:
/*
 * 要求:判断e盘目录下是否有".day"文件夹,有就输出
 * 分析:
 * 1)将d盘封装成一个file对象
 * 2)获取当前盘符下的文件或文件夹的File数组名称
 * 3)遍历数组,获取到每一个文件或文件夹
 * 4)判断是否是文件夹
 * 5)如果是文件夹,判断文件夹是否以".bin"为后缀名
 */
public class FileTest {
	public static void main(String[] args) {
		//创建File对象
		File file=new File("e:\\");
		File[] array=file.listFiles();
		for(File f:array){
			if(f.isDirectory()){
				if(f.getName().endsWith(".day")){
					System.out.println(f.getName());
				}
			}
		}
	}
}
方法二代码:
获取的时候就已经满足条件了,简单,方便
代码:
文件名称过滤器:
public String[]list(Filenamefilter filter):返回一个字符串数组
public File[] listFiles(Filefilter filter):返回抽象路径名称数组
import java.io.File;
import java.io.FilenameFilter;

public class FileTest2 {
	public static void main(String[] args) {
		//将d盘中的文件和文件夹封装到File对象中
		File file=new File("e:\\");
		//返回一个字符串数组名称,然后匿名内部类
		String[] array=file.list(new FilenameFilter(){

			@Override
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				return new File(dir,name).isDirectory()&&name.endsWith(".day");
			}
			
		});
		for(String s:array){
			System.out.println(s);
		}
	}

}






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值