Java--File类

一、File类的概述和构造方法

1、File类的概述:File更应该叫做一个路径

(1)文件路径或者文件夹路径  

(2)路径分为绝对路径和相对路径

(3)绝对路径是一个固定的路径,从盘符开始

(4)相对路径相对于某个位置,在eclipse下是指当前项目下,在dos

查看API指的是当前路径

文件和目录路径名的抽象表示形式

2、构造方法

(1)File(String pathname):根据一个路径得到File对象

(2)File(String parent, String child):根据一个目录和一个子文件/目录得到File对象

(3)File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

二、File类的创建功能

1、public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了

2、public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了

3、public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来

注意事项: 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

三、File类的重命名和删除功能

1、重命名和删除功能

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

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

2、重命名注意事项

如果路径名相同,就是改名。

如果路径名不同,就是改名并剪切。

3、删除注意事项:

Java中的删除不走回收站。

要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

四、File类的判断功能

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

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

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

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

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

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

五、File类的获取功能

1、public String getAbsolutePath():获取绝对路径

2、public String getPath():获取路径

3、public String getName():获取名称

4、public long length():获取长度。字节数

5、public long lastModified():获取最后一次的修改时间,毫秒值

6、public String[] list():获取指定目录下的所有文件或者文件夹的名称数组

7、public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组

六、文件名称过滤器

1、public String[] list(FilenameFilter filter)

2、public File[] listFiles(FileFilter filter)

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.sql.Date;
import java.text.SimpleDateFormat;

public class FileClass {

	public static void main(String[] args) throws IOException {
		/*
		 * 一、File类的概述和构造方法
			  1、File类的概述:File更应该叫做一个路径
				(1)文件路径或者文件夹路径  
				(2)路径分为绝对路径和相对路径
				(3)绝对路径是一个固定的路径,从盘符开始
				(4)相对路径相对于某个位置,在eclipse下是指当前项目下,在dos下
			    查看API指的是当前路径
			    文件和目录路径名的抽象表示形式
			  2、构造方法
				(1)File(String pathname):根据一个路径得到File对象
				(2)File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
				(3)File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
		    二、File类的创建功能
		    	   1、public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
			   2、public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
			   3、public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
	    		   注意事项: 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。
	    		三、File类的重命名和删除功能
	    		   1、重命名和删除功能
					(1)public boolean renameTo(File dest):把文件重命名为指定的文件路径
					(2)public boolean delete():删除文件或者文件夹
			   2、重命名注意事项
					如果路径名相同,就是改名。
					如果路径名不同,就是改名并剪切。
			   3、删除注意事项:
					Java中的删除不走回收站。
					要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹
			 四、File类的判断功能
			  	1、public boolean isDirectory():判断是否是目录
				2、public boolean isFile():判断是否是文件
				3、public boolean exists():判断是否存在
				4、public boolean canRead():判断是否可读
				5、public boolean canWrite():判断是否可写
				6、public boolean isHidden():判断是否隐藏
			 五、File类的获取功能
			 	1、public String getAbsolutePath():获取绝对路径
				2、public String getPath():获取路径
				3、public String getName():获取名称
				4、public long length():获取长度。字节数
				5、public long lastModified():获取最后一次的修改时间,毫秒值
				6、public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
				7、public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
			 六、文件名称过滤器
				1、public String[] list(FilenameFilter filter)
				2、public File[] listFiles(FileFilter filter)
		 * */
		initFile();
		createFile();
		renameFile();
		judgeFile();
		getFilePath();
		filenameFilter();
	}

	private static void filenameFilter() {
		System.out.println("==============文件过滤器=============");
		File file = new File("/Users/cat/Desktop");
		String[] strA = file.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				File file1 = new File(dir,name);
				return file1.isFile() && file1.getName().endsWith(".jpg");
			}
		});
		for (String str:strA){
			System.out.println(str);
		}
	}

	private static void getFilePath() {
		System.out.println("==============获取=============");
		File file1 = new File("test");
		System.out.println(file1.getAbsolutePath());
		System.out.println(file1.getPath());
		System.out.println(file1.getName());
		System.out.println(file1.length());
		Date date = new Date(file1.lastModified());
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
		System.out.println(sdf.format(date));
		
		File file2 = new File("/Users/cat/Desktop/工作日报");
		String[] strA = file2.list();
		for(String str:strA){
			System.out.println(str);
		}
		File[] fileA = file2.listFiles();
		for(File file:fileA){
			System.out.println(file.getAbsolutePath());
		}
		
		//输出所有图片的路径
		File file3 = new File("/Users/cat/Desktop");
		File[] fileB = file3.listFiles();
		for(File file:fileB){
			if(file.isFile() && file.getName().endsWith(".jpg")){
				System.out.println(file.getAbsolutePath());
			}
		}
	}

	private static void judgeFile() throws IOException {
		System.out.println("==============判断=============");
		File file1 = new File("test1");
		System.out.println(file1.createNewFile());
		System.out.println(file1.exists());
		file1.setReadable(false);
		file1.setWritable(false);
		System.out.println(file1.canWrite());
		System.out.println(file1.canRead());    //Windows系统下默认所有文件都是可读的
		System.out.println(file1.isHidden());
	}

	private static void renameFile() {
		System.out.println("==============改名,删除=============");
		File file1 = new File("test1");
		File file2 = new File("change");
		System.out.println(file1.renameTo(file2));
		
		File file3 = new File("change");
		File file4 = new File("/Users/cat/Desktop/22.rtf");
		System.out.println(file3.renameTo(file4));
		System.out.println(file4.delete());
	}

	private static void createFile() throws IOException {
		System.out.println("==============创建文件/夹=============");
		File file1 = new File("test1");
		System.out.println(file1.createNewFile());
		
		File file2 = new File("aaa.txt");
		System.out.println(file2.mkdir());
		
		File file3 = new File("bbb/ccc");
		System.out.println(file3.mkdirs());
	}

	public static void initFile() {
		System.out.println("==============文件路径=============");
		File file = new File("/Users/cat/Desktop/11.rtf");//文件路径
		System.out.println(file.exists());
		
		File file1 = new File("test");//文件路径
		System.out.println(file1.exists());
		
		File file2 = new File("text");//文件路径
		System.out.println(file2.exists());
		
		String parent = "/Users/cat/Desktop/";
		String child = "11.rtf";
		File file3 = new File(parent,child);//文件路径
		System.out.println(file3.exists());
		
		File parentFile = new File("/Users/cat/Desktop/");
		String childStr = "11.rtf";
		File file4 = new File(parentFile,childStr);//文件路径
		System.out.println(file4.exists());
	}
}



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值