文件操作——File

 

1.使用File访问一个文件或目录的属性信息

 

long length = file.length();——> 当前File对象所表示的文件所占用的字节量

 

package day04;

import java.io.File;

/**
 * test.txt
 * java.io.File
 * File表示操作系统中文件系统里的一个文件或目录
 * 使用File可以:
 * 1:访问一个文件或目录的属性信息
 * 2:操作一个文件或目录(创建,删除)
 * 3:访问一个目录的子项
 * 但是不能使用File访问文件数据。
 * @author soft01
 *
 */
public class FileDemo {
	public static void main(String[] args) {
		/*
		 * 在创建File的时候书写路径尽量使用相对路径。避免平台差异性。
		 * 目录层级分隔符应当使用File提供的一个常量:File.separator
		 * 
		 * 常见的相对路径:
		 * 1".":表示当前目录,当前目录视运行环境不同路径也不同。
		 * 在eclipse中运行java程序时的当前目录是当前类所在项目的根目录
		 * 2类加载路径
		 */
		File file = new File("."+File.separator+"test.txt");
		String name = file.getName();
		System.out.println(name);
		long length = file.length();
		System.out.println(length);
		
		boolean canRead =file.canRead();//可读
		boolean canWrite =file.canWrite();//可写
		System.out.println("可读:"+canRead);
		System.out.println("可写:"+canWrite);
		
		boolean isHidden = file.isHidden();
		System.out.println("是否为隐藏文件:"+isHidden);
	}
}


2.使用File创建一个新文件(文件创建在你的项目文件里面)

 

 

 

 

package day04;

import java.io.File;
import java.io.IOException;

/**
 * 使用File创建一个新文件
 * @author soft01
 *
 */
public class File_createNewFile {
	public static void main(String[] args) throws IOException {
		/*
		 * 在当前目录下创建一个名为demo.txt的文件
		 */
		File file = new File("."+File.separator+"demo.txt");
		/*
		 * boolean exists()
		 * 判断当前File表示的文件或目录是否真实存在
		 */
		if(!file.exists()) {
			//创建该文件
			file.createNewFile();
			System.out.println("该文件创建完毕!");
		}else {
			System.out.println("该文件已存在!");
		}
		
	}
}


3.使用File创建一个新文件目录
file.exists()——> 判断该名字命名的文件或目录是否存在

 

 

 

 

package day04;

import java.io.File;

/**
 * 创建一个目录
 * @author soft01
 *
 */
public class File_mkdir {
	public static void main(String[] args) {
		/*
		 * 在当前目录中创建一个名为demo的目录
		 */
		File dir = new File("demo");
		if(!dir.exists()) {
			dir.mkdir();
			System.out.println("创建完毕!");
		}else {
			System.out.println("该目录已存在!");
		}
	}
}


4.使用File创建一个多级目录a/b/c/d/e/f

 

 

 

 

package day04;

import java.io.File;

/**
 * 创建一个多级目录
 * @author soft01
 *
 */
public class File_mkdirs {
	public static void main(String[] args) {
		/*
		 * 在当前目录中创建
		 * a/b/c/d/e/f
		 */
		File dir = new File("a"+File.separator+
				"b"+File.separator+"c"+File.separator+
				"d"+File.separator+"e"+File.separator+"f");
		if(!dir.exists()) {
			/*
			 * mkdirs是在创建当前File表示的目录
			 * 同时将该目录其上的所有不存在的父目录一同创建出来
			 */
			dir.mkdirs();
			System.out.println("创建完毕!");
		}else {
			System.out.println("该目录已存在!");
		}
	}
}


5.使用File删除一个文件
file.delete();——> 删除文件

 

 

 

 

package day04;

import java.io.File;

/**
 * 删除一个文件
 * @author soft01
 *
 */
public class File_delete {
	public static void main(String[] args) {
		/*
		 * 将当前目录中的demo.txt文件删除
		 * 相对路径默认是从“当前目录”开始
		 * 所以
		 * new File("demo.txt")
		 * 等同
		 * new File("./demo.txt)
		 */
		File file = new File("demo.txt");
		if(file.exists()) {
			file.delete();
			System.out.println("删除完毕!");
		}else {
			System.out.println("该文件不存在!");
		}
	}
}

 

 

6.使用File删除一个目录

 

 

 

 

 

package day04;

import java.io.File;

/**
 * 删除一个目录
 * @author soft01
 *
 */
public class File_delete2 {
	public static void main(String[] args) {
		/*
		 * 将当前目录的demo目录删除
		 */
		File dir = new File("demo");
		if(dir.exists()) {
			/*
			 * delete方法在删除目录的时候需要注意,只能删除空目录。
			 */
			dir.delete();
			System.out.println("目录已删除!");
		}else {
			System.out.println("该目录不存在!");
		}
	}
}


7.使用File获取一个目录中的所有子项
boolean isFile()——> 判断当前File表示的是否为一个文件
boolean isDirectory()——> 判断当前File表示的是否为一个目录

 

 

 

 

package day04;

import java.io.File;

/**
 * 获取一个目录中的所有子项
 * @author soft01
 *
 */
public class File_listFiles {
	public static void main(String[] args) {
		/*
		 * 获取当前目录中的所有子项
		 */
		File dir = new File(".");
		/*
		 * boolean isFile()
		 * 判断当前File表示的是否为一个文件
		 * 
		 * boolean isDirectory()
		 * 判断当前File表示的是否为一个目录
		 */
		if(dir.isDirectory()) {
			/*
			 * File[] listFiles()
			 * 获取当前目录中的所有子项
			 */
			File[] subs = dir.listFiles();
			System.out.println("subs:"+subs);
			for(int i=0;i<subs.length;i++) {
				File sub = subs[i];
				if(sub.isDirectory()) {
					System.out.print("目录:");
				}
				if(sub.isFile()) {
					System.out.print("文件:");
				}
				System.out.println(sub.getName());
			}
		}
	}
}


8.使用File获取一个目录中的符合条件的子项

 

 

 

 

package day04;

import java.io.File;
import java.io.FileFilter;

/**
 * File提供了一个重载的listFiles方法
 * 该方法允许我们传入一个文件过滤器FileFilter
 * 该方法会将File表示的目录中所有满足过滤器要求的子项返回,
 * 而不满足的则被忽略。
 * @author soft01
 *
 */
public class File_listFiles2 {
	public static void main(String[] args) {
		/*
		 * 获取当前目录中所有名字以"."开头的子项
		 */
		File dir = new File(".");
		FileFilter filter = new FileFilter() {
			public boolean accept(File file) {
				String name = file.getName();
				System.out.println("正在过滤子项;"+name);
				return name.startsWith(".");
			}
		};
		File[] subs = dir.listFiles(filter);
		for(int i=0;i<subs.length;i++) {
			System.out.println(subs[i].getName());
		}
	}
}
/*class MyFilter implements FileFilter{
	public boolean accept(File file) {
		String name = file.getName();
		System.out.println("正在过滤子项;"+name);
		return name.startsWith(".");
	}
}*/


9.使用File删除给定的File表示的文件或目录

 

 

 

 

package day04;

import java.io.File;
/**
 * 练习:删除给定的File表示的文件或目录
 * @author soft01
 *
 */
public class Test01 {
	public static void main(String[] args) {
		File dir = new File("a");
		delete(dir);
	}
	public static void delete(File f) {
		if(f.isDirectory()) {
			//先将该目录中所有子项删除
			File[] subs = f.listFiles();//获取当前目录的所有子项
			System.out.println(subs);
			for(int i=0;i<subs.length;i++) {
				File sub = subs[i];
				delete(sub);//递归调用
			}
		}
		f.delete();
	}
}

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

linsa_pursuer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值