java---关于文件的创建删除及常用方法,小白也能看懂哦~

File

文件和目录路径名的抽象表示形式 D:\JavaSE\path.txt

构造方法

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

  创建文件对象的三种方式

public static void main(String[] args) {

		
		// 创建文件对象的三种方式
		File f1 = new File("D:\\JavaSE\\a.txt");
		System.out.println(f1);
		File f2 = new File("D:\\JavaSE\\", "a.txt");
		System.out.println(f2);
		
		File f = new File("D:\\JavaSE");
		File f3 = new File(f, "a.txt");
		System.out.println(f3);
		// 使用相对路径来创建文件路径对象
		File f4 = new File("a.txt");
		System.out.println(f4.getAbsolutePath());
	}

文件的创建

  public boolean createNewFile() 若文件不存在则创建新文件
   public boolean mkdir() 创建目录
   public boolean mkdirs() 创建目录及不存在的父目录

文件的删除

   public boolean delete() 删除文件及空目录

文件的重命名

  public boolean renameTo(File dest) 重命名为dest

注意: 非常重要
  1.凡是操作文件的第一步必须创建文件路径对象指向需要操作的文件
   2.文件路径中所有的父目录必须存在

  创建文件的方式

public static void main(String[] args) throws IOException {
		File f = new File("a.txt");
		System.out.println("createNewFile: " + f.createNewFile());
		
		// 在工程目录下创建 aaa/b.txt
//		File f2 = new File("aaa/b.txt");
//		System.out.println("createNewFile: " + f2.createNewFile());
		
		File f2 = new File("aaa");
		File f3 = new File("aaa/b.txt");
		System.out.println("mkdir: " + f2.mkdir());
		System.out.println("createNewFile: " + f3.createNewFile());
		
//		需求: 创建 xxx/yyy/zzz/c.txt
//		File f4 = new File("xxx");
//		File f5 = new File("xxx/yyy");
//		File f6 = new File("xxx/yyy/zzz");
//		File f7 = new File("xxx/yyy/zzz/c.txt");
//		System.out.println(f4.mkdir());
//		System.out.println(f5.mkdir());
//		System.out.println(f6.mkdir());
//		System.out.println(f7.createNewFile());
		
		File f4 = new File("xxx/yyy/zzz");
		File f5 = new File(f4, "c.txt");
		System.out.println(f4.mkdirs());
		System.out.println(f5.createNewFile());
		
	}

文件的删除

  public boolean delete() 删除文件及空目录
   这里删除带内容的文件夹需要使用递归删除 暂时等学完文件遍历再来删除

文件的重命名

  public boolean renameTo(File dest) 重命名为dest
  如果两个文件的父目录相同,那么表示更名
  如果两个文件的父目录不同,那么表示剪切 + 更名

  代码示例

public static void main(String[] args) {
		File f = new File("xxx/yyy/zzz/c.txt");
		System.out.println(f.delete());
		
		File f2 = new File("xxx/yyy/zzz");
		System.out.println(f2.delete());
		
		File f3 = new File("xxx");
		System.out.println(f3.delete());
		
		// 将b.txt修改为x.txt
//		File f4 = new File("aaa/b.txt");
//		File dest = new File("aaa/x.txt");
//		System.out.println(f4.renameTo(dest));
		
		File f4 = new File("aaa/x.txt");
		File dest = new File("ok.txt");
		System.out.println(f4.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 static void main(String[] args) {
		File f = new File("xxx/yyy/d.txt");
		// 4.36 1576917374756
		
		System.out.println("isFile: " + f.isFile());
		System.out.println("isDirectory: " + f.isDirectory());
		System.out.println("canRead: " + f.canRead());
		System.out.println("canWrite: " + f.canWrite());
		System.out.println("exists: " + f.exists());
		System.out.println("isHidden: " + f.isHidden());
		System.out.println("length: " + f.length()); // 9
		System.out.println("getAbsolutePath: " + f.getAbsolutePath());
		System.out.println("getPath: " + f.getPath());
		System.out.println("getName: " + f.getName());
		System.out.println("lastModified: " + f.lastModified());
		
		Date d = new Date(1576917374756L);
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String dateStr = sdf.format(d);
		System.out.println(dateStr);
	}

文件的遍历

  public String[] list() 返回file下的文件和目录名称(字符串)
   public File[] listFiles() 返回file下的文件和目录(文件)
   public String[] list(FilenameFilter filter) 根据filter过滤返回file下文件和目录名称
   public File[] listFiles(FileFilter filter) 根据filter过滤返回file下文件和目录

  代码示例

public static void main(String[] args) {
		// 获取到 com.yy.filedemo目录下所有的文件
		File f = new File("src/com/yy/filedemo");
		// String[] fileNames = f.list();
		// System.out.println(Arrays.toString(fileNames));
		
		/*File[] files = f.listFiles();
		for (File file : files) {
			String fileName = file.getName();
			if (fileName.endsWith(".txt")) {
				System.out.println(fileName);
			}
		}*/
		
		File[] files = f.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File f) {
//				if (f.getName().endsWith(".txt")) {
//					return true;
//				} else {
//					return false;
//				}
				return f.isFile() && f.getName().endsWith(".txt");
			}
		});
		
		for (File file : files) {
			System.out.println(file);
			
		}
	}

判断com.yy.filedemo目录下是否有后缀名为.java的文件,
如果有,统计该类型文件的个数并输出此文件名称

public static void main(String[] args) {
		System.out.println(getFileCount2(new File("src/com/yy/filedemo")));
	}
	
	public static int getFileCount(File srcFolder) {
		int count = 0;
		File[] files = srcFolder.listFiles();
		for (File f : files) {
			if (f.isFile() && f.getName().endsWith(".java")) {
				count++;
				System.out.println(f.getName());
			}
		}
		return count;
	}
	
	public static int getFileCount2(File srcFolder) {
		return srcFolder.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File f) {
				return f.isFile() && f.getName().endsWith(".java");
			}
		}).length;
	}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值