IO流----File类的常用方法

package com.qf.day18_3;

import java.io.File;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.Date;
/**
 * File类
 * 
 * @author wgy
 * 
 */
public class Demo1 {

	public static void main(String[] args) throws Exception {
		// separator();
		// fileConstructor();
		//fileOpe();
		//rename();
		directoryOpe();
//		rename2();
		//listFiles();
	}

	// 分隔符
	public static void separator() {
		// 路径分隔符
		System.out.println(File.pathSeparator);
		System.out.println(File.pathSeparatorChar);
		// 名称分隔符
		System.out.println(File.separator);
		System.out.println(File.separatorChar);
	}

	// File构造方法
	public static void fileConstructor() {
		// 创建File对象
		File myFile = new File("d:\\image\\haha.jpg");
		File myFile2 = new File("d:\\image", "4.jpg");
		File parent = new File("d:\\image");
		File myFile3 = new File(parent, "4.jpg");
		File myFile4 = new File(parent, "haha.jpg");
		File myFile5 = new File("d:\\xxx\\yyy\\a.jpg");

		System.out.println(myFile);
		System.out.println(myFile2);
		System.out.println(myFile5);

	}

	/**
	 * 文件操作 创建 删除 判断 获取 重命名
	 */
	public static void fileOpe() throws Exception {
		// 创建File对象 绝对路径 相对路径
		File file = new File("d:\\a.txt");

		// 1创建(如果文件不存在,则创建返回true,如果存在则不创建,返回false)
		boolean b = file.createNewFile();
		System.out.println("创建文件" + b);
		// 2删除
		// 2.1直接删除
		 boolean b2=file.delete();
		// System.out.println("删除文件"+b2);
		// 2.2jvm删除 (没有直接删除,当jvm退出时删除)
		// file.deleteOnExit();
		// Thread.sleep(5000);
		// 3判断
		System.out.println("canExecute()" + file.canExecute());// 是否可执行
		System.out.println("canRead()" + file.canRead());// 是否可读
		System.out.println("canWrite()" + file.canWrite());// 是否可写
		System.out.println("exists()" + file.exists());// 是否存在
		System.out.println("isAbsolute()" + file.isAbsolute());// 是否是绝对路径
		System.out.println("isFile()" + file.isFile());// 是否是文件
		System.out.println("isHidden()" + file.isHidden());// 是否是隐藏
		// 4获取
		System.out.println(file.getAbsolutePath()); // 获取绝对路径名 //字符串
		System.out.println(file.getAbsoluteFile()); // 获取绝对文件名称 返回类型File
		System.out.println(file.getCanonicalPath());// 获取规范绝对路径名
		System.out.println(file.getName()); // 获取文件名
		System.out.println(file.getPath()); // 获取路径

		System.out.println(new Date(file.lastModified()).toLocaleString());// 文件最后修改日期
		System.out.println(file.length()); // 文件长度

	}
	/**
	 * 文件重命名
	 */
	public static void rename(){
		File file=new File("d:\\a.txt");
		File newFile=new File("d:\\mywork\\b.txt");
		file.renameTo(newFile);//修改名称
	}
	/**
	 * 文件夹操作  创建 删除 判断 获取 重命名
	 */
	public static void directoryOpe(){
		//创建File
		File dir=new File("d:\\xxx\\yyy\\zzz");
		//1创建
		//boolean b=dir.mkdir();//创建一级文件夹
		boolean b2=dir.mkdirs();//创建多级文件夹
		System.out.println(b2);
		//2删除
		//2.1直接删除 (只能删除一级 ,只能是空目录)
//		boolean b3=dir.delete();
//		System.out.println(b3);
		//2.2jvm删除
		//dir.deleteOnExit();
		//3判断
		System.out.println("exists()"+dir.exists()); //是否存在
		System.out.println("isAbsolute()"+dir.isAbsolute());//是否是绝对路径
		System.out.println("isDirectory()"+dir.isDirectory());//是否是目录
		System.out.println("isHidden()"+dir.isHidden());//是否是隐藏
		//4获取
		System.out.println("getAbsolutePath"+dir.getAbsolutePath()); //获取绝对路径
		System.out.println("getName()"+dir.getName());
		System.out.println("getPath()"+dir.getPath());
		//System.out.println("lastModified"+dir.lastModified());
		
		//
	}
	/**
	 * 文件夹重命名
	 */
	public static void rename2(){
		File dir=new File("d:\\xxx\\yyy\\zzz");
		File newDir=new File("d:\\xxx\\yyy\\hahah");
		dir.renameTo(newDir);
	}
	/**
	 * 列出文件夹下面的文件和子文件
	 */
	public static void listFiles(){
		//1列出所有的
		File dir=new File("D:\\image");
//		String[] files=dir.list();
//		for (String string : files) {
//			System.out.println(string);
//		}
		//2过滤文件
		String[] files2=dir.list(new FilenameFilter() {
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				if(name.endsWith(".png")){
					return true;
				}
				return false;
			}
		});
		for (String string : files2) {
			System.out.println(string);
		}
	}

}

File递归删除文件夹中的所有内容
 
 


import java.io.File;

public class Demo4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		delDir(new File("d:\\xxx"));
	}
	public static void delDir(File dir){
		File[] files = dir.listFiles();
		if(files!=null){
			for (File file : files) {
				if (file.isDirectory()) {
					delDir(file);
				}else {
					System.out.println(file.toString()+file.delete());//删除文件
				}
			}
			System.out.println(dir.toString()+dir.delete());//删除目录
		}
	}
}



File类递归遍历文件夹

// level用来记录当前递归的层次
public static void listChilds(File f, int level) {
    // 生成有层次感的空格
    StringBuffer sb = new StringBuffer("|--");
    for (int i = 0; i < level; i++) {
        sb.insert(0, "|  ");
    }

    File[] childs = f.listFiles();
    // 递归出口
    int length = childs == null ? 0 : childs.length;
    for (int i = 0; i < length; i++) {
        System.out.println(sb.toString() + childs[i].getName());
        if(childs[i].isDirectory()){
            listChilds(childs[i], level + 1);
        }
    }
}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值