Java文件简述

文件常用方法

  1. boolean exists() 该路径表示的文件或目录是否存在
  2. long length() 返回文件的长度
  3. boolean canRead() 文件是否可读
  4. boolean canWrite() 文件是否可写
  5. boolean delete() 删除路径名表示的文件或目录
  6. String getName() 返回文件或目录的名称
  7. String getPath() 将路径名转换为路径字符串
  8. boolean isFile() 路径名表示的是否是普通文件
  9. boolean createNewFile() 当该名称的文件不存在时,由该路径创建一个新文件
	public static void main(String[] args) throws IOException {
		// 文件
		// (1) 创建File对象 File(String pathname)
		File f = new File("f:\\data\\a.txt");//绝对路径名
		File f = new File("f:/data/a.txt");//绝对路径名
		File f = new File("a.txt");//相对路径名
		
		// (2) File(String parent, String child) 
		File f = new File("f:/data","a.txt");

		// (3) File(File parent, String child) 
		File fe = new File("f:/data");
		File f = new File(fe,"a.txt");
		
		// 1. 文件是否存在 存在返回true
		System.out.println(f.exists()); 
		// 2. 文件不存在时创建文件
		f.createNewFile();
		// 3. 获得文件的名字
		System.out.println(f.getName());// a.txt
		// 4. 获得文件的路径(与创建对象时是相对还是绝对路径有关)
		//File f = new File("f:/data/a.txt");
		System.out.println(f.getPath());// f:\data\a.txt   a.txt
		//File f = new File("a.txt"); 相对路径指向项目目录下
		System.out.println(f.getPath()); //F:\workspace22\Project22\a.txt
		// 获得绝对路径
		System.out.println(f.getAbsolutePath());// F:\workspace22\Project22\a.txt
		// 5. 是否可以读
		System.out.println(f.canRead());// true
		// 6. 是否可以写
		System.out.println(f.canWrite());// true
		// 7. 是否是 文件
		System.out.println(f.isFile());// true
		// 8. 获得文件的长度  long 文件内容的字节数(英文字母 1 ,中文 2)
		System.out.println(f.length());// 0
		// 9.
		f.delete();
		
	}

目录常用方法

  1. boolean isDirectory() 测试路径表示的是否为目录
  2. boolean exists() 该路径表示的文件或目录是否存在
  3. String[] list() 返回目录中的文件和目录
  4. File[] listFiles() 返回目录中的文件和目录的对象数组
  5. boolean mkdir() 当目录不存在时创建
  6. boolean mkdirs() 当目录不存在时创建,若父目录不存在则同时创建父母录
	// 目录
		File f = new File("f:/data");
		// 1. 是否是目录
		System.out.println(f.isDirectory());// true
		// 2. 是否存在
		System.out.println(f.exists());// true
		System.out.println("---------------------------");
		// 3. 创建目录
		File f1 = new File("f:/data1");
		System.out.println(f1.exists());//false
		// 创建 : 若父目录存在可以创建,不存在则创建失败
		f1.mkdir();
		System.out.println("-----------------------");
		//----------------------------------------------------
		File f2 = new File("f:/data2/data3");
		System.out.println(f2.exists());
		// 创建: 父目录不存在 可以 创建父目录
		f2.mkdirs();

获得目录内容

使用过滤器

FilenameFileter :文件名过滤器

@FunctionalInterface
public interface FilenameFilter {
	// dir -> 目录 ,父路径   name -> 文件名,子目录名
    boolean accept(File dir, String name);//测试指定文件是否包含在文件列表中。
}

list()方法返回的数组中存储的是文件名,所以用文件名过滤器

		File f = new File("f:/data");
		// 获得 目录的内容
		// 1. 获得  目录下 的 子目录和文件 的String 数组
		String [] fs = f.list();
		
		// 查看 data下的所有 java文件
		fs = f.list(new FilenameFilter() {//匿名内部类形式
			@Override
			public boolean accept(File dir, String name) {
				// java文件
				return name.endsWith("java");
			}
		});
		Arrays.stream(fs).forEach(System.out::println);
		// jpg
		fs = f.list((dir,name)-> name.endsWith("jpg"));//lambda表达式
		Arrays.stream(fs).forEach(System.out::println);

FileFilter:文件过滤器

@FunctionalInterface
public interface FileFilter {

    /**
     * pathname:路径
     */
    boolean accept(File pathname);
}

listFiles()方法返回的是File对象数组,用文件过滤器

		// 获得目录下的子目录 和 文件 的 File 数组
		File [] fes = f.listFiles();

		// 过滤 java
		fes = f.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File pathname) {
				// java
				return pathname.getName().endsWith("java");
			}
		});
		// jpg
		fes = f.listFiles(path->path.getName().endsWith("jpg"));
		for(File fe : fes){
			if(fe.isFile()){
				System.out.println(fe.getName());
			}else if(fe.isDirectory()){
				System.out.println("目录;" + fe.getAbsolutePath());
			}
		}
posted @ 2020-03-21 21:45  我不是忘尘  阅读(289)  评论(0编辑  收藏  举报