File

1.文件操作基本命令

创建:

createNewFile();//只在文件不存在时创建,创建成功返回true,如果文件已经存在不创建,返回false.创建文件时只能在已有的路径下创建。此方法只能创建文件不能创建文件夹。
mkdir()//创建文件夹,此方法只能创建一级目录,如果有多级目录无法创建。
mkdirs()//创建文件夹,此方法可以创建多级目录,会将路径中须有的所有目录都依次创建出来。
删除:
delete()//既可以删除文件也可以删除文件夹,如果要删除的是一个文件夹,则该文件夹必须位空的才能删除
判断:
boolean canRead() //判断该文件是否可读
boolean canWrite() //判断文件是否可写 
boolean exists() //判断文件或文件夹是否存在
boolean isFile() //判断是否是一个文件,如果File表示的是一个文件且文件存在则返回true,如果File表示的文件不存在或者是一个文件夹则返回false
  boolean isDirectory()//判断是否是一个文件夹,只有这个File代表的是一个文件夹且文件夹存在返回true,否则返回false 
  boolean isHidden() //判断是否是一个隐藏文件
获取信息:
String getName();//获取名称
String getAbsolutePath() //获取文件的绝对路径
String getPath() //获取路径
  long length() //获取文件的大小,如果文件不存在返回0L,如果是个目录,则返回值不确定
  long lastModified() //返回文件的最后修改时间
String getParent() //获取父目录的字符串形式
  File getParentFile() //获取父目录的File对象形式
 设置方法:
  boolean setLastModified(long time) //设置最后修改时间
boolean setReadable(boolean readable) //设置文件是否可读
boolean setWritable(boolean writable) //设置文件是否可写
  renameTo(File f);//重命名方法,除了可以修改文件名字,还可以实现类似剪切的操作
 获取文件:
  static File[] listRoots() //获取当前系统的所有盘符
String[] list() //获取目录中的所有内容(包括文件和文件夹)的名字组成的字符串数组
  String[] list(FilenameFilter filter) 
File[] listFiles() //获取目录中的所有内容(包括文件和文件夹)的File对象的数组

  File[] listFiles(FileFilter filter) 

package zll.material.java_base_homework;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Date;

public class FileDemo1 {
	public static void main(String[] args) throws IOException {
		//createNewFile();//只在文件不存在时创建,创建成功返回true,如果文件已经存在不创建,返回false.创建文件时只能在已有的路径下创建。此方法只能创建文件不能创建文件夹。
//		File file = new File("E:\\new1.txt");
//		boolean flag = file.createNewFile();
//		System.out.println(flag);
		//mkdir()//创建文件夹,此方法只能创建一级目录,如果有多级目录无法创建。
//		File file = new File("E:\\aaa");
//		boolean flag = file.mkdir();
//		System.out.println(flag);
		//mkdirs()//创建文件夹,此方法可以创建多级目录,会将路径中须有的所有目录都依次创建出来。
//		File file = new File("E:\\aaa\\bbb\\ccc");
//		boolean flag = file.mkdirs();
//		System.out.println(flag);
		//delete()//既可以删除文件也可以删除文件夹,如果要删除的是一个文件夹,则该文件夹必须位空的才能删除
//		File file = new File("E:\\aaa");
//		boolean flag = file.delete();
//		System.out.println(flag);
	    //boolean canWrite() //判断文件是否可写 
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		if(file.canWrite()){
//			System.out.println("写入数据。。。。");
//		}else{
//			throw new RuntimeException("文件不可写!");
//		}
		//boolean exists() //判断文件或文件夹是否存在
//		File file = new File("c:\\aaa\\bbb\\11.txt");
//		System.out.println(file.exists());
		//boolean isFile() //判断是否是一个文件,如果File表示的是一个文件且文件存在则返回true,如果File表示的文件不存在或者是一个文件夹则返回false
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.isFile());
		//boolean isHidden() //判断是否是一个隐藏文件
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.isHidden());
		//String getName();//获取名称
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.getName());
		//String getPath() //获取路径
		//String getAbsolutePath() //获取文件的绝对路径
//		File file = new File("1.txt");
//		System.out.println(file.getAbsolutePath());
//		System.out.println(file.getPath());
		//long length() //获取文件的大小,如果文件不存在返回0L,如果是个目录,则返回值不确定
		//long lastModified() //返回文件的最后修改时间
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.length());
//		long lastModTime = file.lastModified();
//		Date date = new Date(lastModTime);
//		System.out.println(date.toLocaleString());
		//String getParent() //获取父目录的字符串形式
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		System.out.println(file.getParent());
		//boolean setLastModified(long time) //设置最后修改时间
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		file.setLastModified(System.currentTimeMillis());
		//
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		file.setReadOnly();
		//renameTo(File f);//重命名方法,除了可以修改文件名字,还可以实现类似剪切的操作
//		File file = new File("c:\\aaa\\bbb\\1.txt");
//		File newFile = new File("c:\\new1.txt");
//		file.renameTo(newFile);
		//static File[] listRoots() //获取当前系统的所有盘符
//		File [] fs = File.listRoots();
//		for(File f : fs){
//			System.out.println(f.getAbsolutePath());
//		}
		//String[] list() //获取目录中的所有内容(包括文件和文件夹)的名字组成的字符串数组
//		File file = new File("c:\\");
//		String [] strs = file.list();
//		for(String str : strs){
//			System.out.println(str);
//		}
		//String[] list(FilenameFilter filter) 
//		File file = new File("c:\\");
//		String [] strs = file.list(new FilenameFilter() {
//			@Override
//			public boolean accept(File dir, String name) {
//				return name.endsWith(".txt");
//			}
//		});
//		for(String str : strs){
//			System.out.println(str);
//		}
	}
}

2.利用递归和文件基本操作命令实现:递归删除非空文件夹

package com.zll.file;

import java.io.File;

/**
	递归的结束条件:如果是文件或空文件夹就删除
	向下递归的条件:如果是非空文件夹就接着递归
 */
public class DelFileDemo1 {
	public static void main(String[] args) {
		del(new File("c:\\aaa"));
	}

	//如果该文件夹是空的就删除,如果不是空的就删除所有子内容再删除当前文件夹
	public static void del(File dir){
		if(dir.list().length==0){
			//文件夹是空的,直接删除
			dir.delete();
		}else{
			//文件夹不是空的,就列出所有孩子,如果是文件,删除,如果是文件夹就递归,所有孩子删干净后,删除自己
			File [] fs = dir.listFiles();
			for(File f : fs){//遍历当前目录的所有孩子
				if(f.isFile()){
					//如果是个文件,删出
					f.delete();
				}else{
					//如果是个文件夹就递
					del(f);
				}
			}
			dir.delete();
		}
	}
}

3.利用递归和文件基本操作命令实现:打印文件夹的目录树结构 

package com.zll.file;

import java.io.File;
/**
	递归:方法自己调用自己
 */
public class ShowFileTreeDemo1 {
	public static void main(String[] args) {
		File file = new File("c:\\aaa");
		tree(file,0);
	}
	
	
	public static void tree(File dir,int deep){
		File [] fs = dir.listFiles();
		for(File f : fs){
			for(int i = 0;i<deep;i++){
				System.out.print("---");
			}
			if(f.isFile()){
				System.out.println(f.getName());
			}else{
				System.out.println(f.getName());
				tree(f,deep+1);
			}
		}
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值