File类

File类

本质并不是代表文件对象,代表的是指向文件的路径对象

1.绝对路径和相对路径区别

绝对路径: 以协议或者盘符开头

  • D:\WebRoot\txt\download1542332992180.txt 【本地绝对路径】

  • http://www.sxt.com:8080/day18/aaa.txt 【网络绝对路径】

相对路径: 相对于某个文件路径的路径

  •  	. : 当前文件夹
    
  •  	.. : 上一级文件夹
    
  •  	/:相对于根路径
    

2.File

2.1操作细节:

1.如果想要操作某个文件,必须先创建文件路径对象指向需要操作的文件

2.在书写文件路径的时候,必须先创建父目录路径对象,再创建子目录路径对象

2.2构造方法

说明
public File(String pathname) pathname文件路径名
public File(String parent,String child)父路径名 子路径名
public File(File parent,String child)通过父文件对象和子文件名称构造文件对象

2.3成员方法

  • 创建文件功能
说明
public boolean createNewFile()若文件不存在则创建新文件
public boolean mkdir()创建目录 directory
public boolean mkdirs()创建目录及不存在的父目录
  • 删除文件功能

    • 如果父目录相同,表示更名

    • 如果父目录不同,表示剪切+更名

说明
public boolean delete()删除文件及空目录
  • 文件的重命名
说明
public boolean renameTo(File dest)重命名为dest
		File f = new File("bbb.txt");
		File dest = new File("xxx/yyy/zzz/ccc.txt");
		System.out.println(f.renameTo(dest));
  • 如果父目录相同,表示更名

  • 如果父目录不同,表示剪切+更名

  • 文件的相关属性功能
说明
public boolean isFile()是否文件
public boolean isDirectory()是否目录
public boolean canRead()是否可读
public boolean canWrite()是否可写
public boolean exists()是否存在
public boolean isHidden()是否隐藏
public long length()长度
public String getAbsolutePath()绝对路径
public String getPath()定义的路径
public String getName()file名字
public long lastModified()最后一次修改时间
		//public long lastModified()返回的是毫秒值
		//所以需要用date转换为时间
		Date d = new Date(f.lastModified());
		//使用format把date转换为文本
		String dateStr = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(d);
		System.out.println(dateStr);

2.4文件的遍历

  • 遍历所有文件
说明
public String[] list()返回file下的文件和目录名称(字符串)
public File[] listFiles()返回file下的文件和目录(文件)
  • 遍历指定文件
说明
public String[] list(FilenameFilter filter)根据filter过滤返回file下文件和目录名称
public File[] listFiles(FileFilter filter)根据filter过滤返回file下文件和目录
public class FileDemo06 {
	public static void main(String[] args) {
		File f = new File("src/com/sxt/filedemo");
        
       //public String[] list()返回file下的文件和目录名称(字符串)
		String[] fileNames = f.list();
		for (String fileName : fileNames) {
			System.out.println(fileName);
		}
		
		//public File[] listFiles()返回file下的文件和目录(文件)
		File[] files = f.listFiles();
		for (File file : files) {
			System.out.println(file.getName() + "|" + file.length());
		}
	
       //public String[] list(FilenameFilter filter)根据filter过滤返回file下文件和目录名称
		String[] fileNames = f.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File f, String name) {
				// System.out.println(f + "|" + name);
				File file = new File(f, name);
				if (file.isFile() && file.getName().endsWith(".java")) {
					return true;
				} 
				return file.isFile() && file.getName().endsWith(".java");
			}
		});
		
		System.out.println(Arrays.toString(fileNames));
        
        //public  File[] listFiles(FileFilter filter)根据filter过滤返回file下文件和目录
		File[] files = f.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File f) {
				return f.isFile() && f.getName().endsWith(".java");
			}
		});
		
		System.out.println(Arrays.toString(files));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值