Java 之 Java File 类

File

File 作用
1.操作文件
2.操作文件夹
3.操作文件的路径

分隔符

获取路径分隔符
String pathseparator = File.pathSeparator;
System.out.println(pathseparator);
不同平台下获取的路径分隔符不同
mac 系统下路径分隔符为:(冒号)
Windows 系统下路径分隔符为;(分号)
获取分隔符
String f = File.separator;
System.out.println(f);
不同平台下获取的分隔符不同
mac 系统下/Users/Desktop
Windows 系统下\
因此,需要跨平台时,在定义的时候,定义为 f + Users + f + Desktop

File 基本方法

构造方法

File(String pathname)
private static void construction() {
	/*
	 * 绝对路径
	 * 硬盘上的路径并且这个路径是唯一的(以/开头)
	 * 
	 * 相对路径
	 * 相对路径是有参照物的
	 */
	File file = new File("/Users/Desktop/Test");
	System.out.println(file);
	// 判断该路径是否存在
	boolean exists = file.exists();
	System.out.println(exists);
	// 使用相对路径,参照物为当前工程根目录
	File file1 = new File("src/test.txt");
	// 打印相对路径
	System.out.println(file1.getAbsolutePath());
	// /Users/eclipse-workspace/Demo/src
	boolean exists2 = file1.exists();
	System.out.println(exists2);
}
File(String parent, String child)
private static void construction() {
	String parent = "/Users/Desktop";
	String child = "Test";
	File file = new File(parent, child);
	boolean exists = file.exists();
	System.out.println(exists);
}
File(File parent, String child)
private static void construction() {
	String parent = "/Users/Desktop";
	File file = new File(parent);
	File file2 = new File(file, "Test");
	System.out.println(file2);
}

创建方法

创建文件的方法
文件已经存在时,不会重复创建
该方法只能创建文件,不给后缀也是创建的文件(没有后缀)
public static void main(String[] args) throws IOException {
	File file = new File("/Users/Desktop/Test/test.txt");
	Boolean boolean = file.createNewFile();
	System.out.println(boolean);
}
例题:在工程的src 目录下创建 Test.txt
public static void main(String[] args) throws IOException {
	File file = new File("src/Test.txt");
	boolean createNewFile = file.createNewFile();
	System.out.println(createNewFile);
}
创建文件夹
带不带后缀,创建出来的都是文件夹
mkdir() 只能创建一级文件夹
public static void main(String[] args) {
	File file = new File("/Users/Desktop/Test");
	boolean mkdir = file.mkdir();
	System.out.println(mkdir);
}
mkdirs() 可以创建多级文件夹(只要没有就会创建)
public static void main(String[] args) {
	File file = new File("/Users/Desktop/Test/X/Y/Z");
	boolean mkdirs = file.mkdirs();
	System.out.println(mkdirs);
}

删除方法

删除
需谨慎,不会放在回收站中
如果文件夹下,没有子文件夹可以删除
public static void main(String[] args) {
	File file = new File("/Users/Desktop/Test");
	boolean delete = file.delete();
	System.out.println(delete);
}

判断方法

public static void main(String[] args) {
	File file = new File("src/test.txt");
	// 判断是否为文件夹
	boolean file1 = file.isDirectory();
	// 判断是否为文件
	boolean file2 = file.isFile();
	// 判断是否存在
	boolean file3 = file.exists();
	
	System.out.println(file1);
	System.out.println(file2);
	System.out.println(file3);
}

获取方法

获取路径(跟 toString 方法一样,输出路径,不管文件存在与否)
public static void main(String[] args) {
	File file = new File("/Users/Desktop/思维导图/JavaSE.png");
	String path = file.getPath();
	System.out.println(path);
	// 获取文件名字
	String name = file.getName();
	System.out.println(name);
	// 获取文件长度(获取文件占多少字节)
	//  utf - 8  英文一字节,中文3字节
	long length = file.length();
	System.out.println(length);
	// 获取父级路径
	File parentFile = file.getParentFile();
	System.out.println(parentFile);
}
public static void main(String[] args) {
	File file = new File("/Users/Desktop/Test");
	// 以字符串形式,返回路径下所有文件及文件夹的名字(一层)
	String[] list = file.list();
	for (String string : list) {
		System.out.println(string);
	}
	// 以文件对象形式,获取该路径下文件的全路径(一层)
	File[] listFiles = file.listFiles();
	for (File file2 : listFiles) {
		System.out.println(file2);
	}
}
例题:遍历打印 Test 文件下所有文件和文件夹
public static void main(String[] args) {
	File file = new File("/Users/eclipse-workspace");
	getFileName(file);
}
public static void getFileName(File file) {
	// 获取 file 下的文件路径
	File[] listFiles = file.listFiles();
	for (File file2 : listFiles) {
		System.out.println(file2);
		// 判断 file2 是否为文件夹
		if (file2.isDirectory()) {
			getFileName(file2);
		}
	}
}
例题:从控制台输入一个字符串 该字符串是文件夹路径 计算这个文件夹的大小
public class Demo {
	static long length = 0;
	public static void main(String[] args) {
		File file = new File("/Users/eclipse-workspace");
		long file2 = getFile(file);
		System.out.println(file2);
	}
	public static long getFile (File file) {
		// 获取 file 下的文件路径
		File[] listFiles = file.listFiles();
		for (File file2 : listFiles) {
			if (file2.isDirectory()) {
				return getFile(file2);
			} else {
				length = length + file2.length();
			}
		}
		return length;
	}
}

http://blog.csdn.net/huzongnan/article/list

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值