java学习之File对象

File对象:

File对象四种构造函数
new File(字符串的路径);
new File(Uri);
new File(String parent, filename);
new File(File parent, filename);

静态属性
File.separator		// 路径的分隔符


常见方法
file.canExecute();
file.canWrite();
file.canRead();

file.createNewFile();	// 创建文件
file.mkdir();		// 只能创建一层目录
file.mkdirs();		// 级联创建文件夹
file.delete();		// 删除
file.deleteOnExit();	
file.exists()		// 判断文件或者目录是否存在
file.getAbsoluteFile();
file.getAbsolutePath();
file.getFreeSpace();
file.getUsableSpace();
file.getTotalSpace();
file.getName();
file.length();		//获取文件大小
file.getParent();
file.getParentFile();
file.getPath();
file.isAbsolute();
file.isFile();
file.isDirectory();
file.isHidden();

file.isAbsolute();
file.isFile();
file.isDirectory();
file.isHidden();
file.lastModified();

file.list();
file.list(FilenameFilter);
file.listFiles();
file.listFiles(FilenameFilter);
file.listFiles(FileFilter);

lambda表达式:

函数的简化写法,也就是讲函数名称和一些能够省略的代码直接省略掉。
如:
File[] listFiles = file.listFiles((File f)-> f.getName().endsWith("java"));

上代码:

package com.openlab.day20.io;


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

import org.junit.jupiter.api.Test;

class TestIFile {


	@Test
	void test01() throws IOException {
//		File file = new File("c:/a/b/", "a.mp4");  // c:/a/b/a.mp4
//		
//		file.canExecute();
//		file.canWrite();
//		file.canRead();
//		file.createNewFile();
		
//		File file = new File("C:\\soft", "hbuilder.zip");
		
//		file.mkdir();	// 只能创建一层目录
//		file.mkdirs();  // 级联创建文件夹
		
//		file.delete();	// 删除文件或者文件夹
//		file.deleteOnExit();
//		file.exists();
//		file.getAbsoluteFile();
//		file.getAbsolutePath();
//		
//		file.getFreeSpace();
//		file.getUsableSpace();
//		file.getTotalSpace();
//		
//		file.getName();
//		file.length();		//获取文件大小
		
//		System.out.println((file.length() / 1024 / 1024) + "M");
//		
//		file.getParent();
//		file.getParentFile();
		
//		file.getPath();
		
//		System.out.println(file.isAbsolute());
//		System.out.println(file.isFile());
//		System.out.println(file.isDirectory());
//		System.out.println(file.isHidden());
		
//		long lastModified = file.lastModified();
//		Date date = new Date(lastModified);
//		System.out.println(date);
		
		// 重命名
//		file.renameTo(new File("C:\\soft\\hbuilder.zip"));
		// 注意,重命名往往也是剪贴
//		file.renameTo(new File("C:\\hbuilder.zip"));
		
		
		File file = new File("C:\\Users\\liujianhong\\Desktop\\最近工作\\java se\\day04");
		
//		String[] list = file.list();
//		for (String string : list) {
//			System.out.println(string);
//		}
		

		// FilenameFilter 过滤器,文件名称过滤器
		// 使用匿名内部类
//		String[] paths = file.list(new FilenameFilter() {
//			
//			@Override
//			public boolean accept(File dir, String name) {
//				// 文件名称以java结尾的文件
//				if (name.endsWith("java")) {
//					return true;
//				}
//				return false;
//			}
//		});
		
		// 使用内部类
//		String[] paths = file.list(new MyFilenameFileter());
		
		// lambda表达式,用来简化函数的写法
		String[] paths = file.list((File dir, String name) -> name.endsWith("java"));
		
		for (String string : paths) {
			System.out.println(string);
		}
		
		
//		File[] files = file.listFiles();
//		for (File file2 : files) {
//			System.out.println(file2.getName());
//		}
		
//		file.listFiles(filter)
		
	}

	
	class MyFilenameFileter implements FilenameFilter {

		@Override
		public boolean accept(File dir, String name) {
			File f = new File(dir, name);
			if (f.length() > 1024) {
				return true;
			}
			return false;
		}
		
	}
	
	@Test
	void test02() {
		File file = new File("C:\\Users\\liujianhong\\Desktop\\最近工作\\java se\\day04");
		
//		File[] listFiles = file.listFiles();
//		for (File file2 : listFiles) {
//			System.out.println(file2);
//		}
		
//		File[] listFiles = file.listFiles(new FileFilter() {
//			@Override
//			public boolean accept(File pathname) {
//				if (pathname.getName().startsWith("TestS")) {
//					return true;
//				}
//				return false;
//			}
//		});
		
		File[] listFiles = file.listFiles((File f)-> f.getName().endsWith("java"));
		for (File file2 : listFiles) {
			System.out.println(file2);
		}
	}
	
	
}

遍历磁盘:

package com.openlab.day20.io;

import java.io.File;

public class TesFile02 {

	public static void scannerFile(String path) {
		// 首先获取对应路径下所有文件或者目录
		File file = new File(path);
		String[] list = file.list();
		for (String filename: list) {
			String realPath = path + File.separator + filename;
			File ff = new File(realPath);
			if (ff.isFile()) {
				System.out.println(ff.getAbsolutePath());
			} else {
				scannerFile(realPath);
			}
		}
	}
	
	public static void scannerFile02(String path) {
		// 首先获取对应路径下所有文件或者目录
		File file = new File(path);
		File[] list = file.listFiles();
		for (File f: list) {
			if (f.isFile()) {
				System.out.println(f.getAbsolutePath());
			} else {
				scannerFile(f.getAbsolutePath());
			}
		}
	}
	static void scannerFile03(File file) {
		if(file.isDirectory()) {
			File[] files = file.listFiles();
			if(files!=null&&files.length>=0) {
				for (File file2 : files) {
					if(file2.isDirectory()) {
						scannerFile03(file2);
					}else if(file2.isFile()) {
						System.out.println(file2.getAbsolutePath());
					}else {
						System.out.println("嘿嘿嘿!");
					}
				}
			}
		}
	}
	public static void main(String[] args) {
		scannerFile02("H:\\");
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值