Java学习笔记 -- File类

一、File类
  • File类的对象,代表一个文件或一个文件目录(俗称:文件夹)
  • File类声明在java.io包下
  • File类中涉及到关于文件或文件目录的创建、删除、重命名、查看修改时间、查看文件大小等方法,并未涉及到写入或读取文件内容的操作,如果需要读取或写入文件内容,必须使用IO流完成
  • File类的对象常会作为参数传递到流的构造器中,指明读取或写入的“终点”
二、路径
  • 绝对路径:相对于某个路径下指明的路径
  • 相对路径:包含盘幅在内的文件或文件目录的路径
    • 路径中每级目录之间用一个路径分隔符隔开
    • 路径分隔符和系统有关:
      • Windows和DOS系统默认使用"\"来表示
      • UNIX和URL使用“/”来表示
      • Java中提供File.separator常量动态获取当前操作系统的分隔符
三、File类的实例化
  1. public File(String pathname)
	File file1 = new File("hello.txt");// 相对路径,相对于当前的 project
	File file2 = new File("D:\\Temp\\hello.txt");
  1. public File(String parent, String child)
	File file3 = new File("D:\\Temp","JavaTest");// 在父路径基础上,创建新的子路径
  1. public File(File parent, String child)
	File file4 = new File(file3, "hello.txt");// 在指定路径中创建新文件
四、File类的常用方法
File类的获取功能
  1. public String getAbsolutePath():获取绝对路径
  2. public String getPath():获取路径
  3. public String getName():获取名称
  4. public String getParent():获取上层文件路径,若无,返回null
  5. public long length():获取文件长度(字节数),不能获取目录的长度
  6. public long lastModified():获取最后一次修改时间,ms
	@Test
	public void methodTest1() {
		File file1 = new File("hello.txt");
		File file2 = new File("D:\\Temp\\hello.txt");
		System.out.println(file1.getAbsolutePath());
		System.out.println(file1.getPath());
		System.out.println(file1.getName());
		System.out.println(file1.getParent());
		System.out.println(file1.length());
		System.out.println(new Date(file1.lastModified()));
		System.out.println();
		System.out.println(file2.getAbsolutePath());
		System.out.println(file2.getPath());
		System.out.println(file2.getName());
		System.out.println(file2.getParent());
		System.out.println(file2.length());
		System.out.println(new Date(file2.lastModified()));
	}
G:\Users\17687\eclipse-workspace\JavaProject\hello.txt
hello.txt
hello.txt
null
0
1970-01-01

D:\Temp\hello.txt
D:\Temp\hello.txt
hello.txt
D:\Temp
0
1970-01-01
  1. public String[] list():获取指定目录下的所有文件或者文件目录的名称数组
	public void methodTest2() {
		File file = new File("G:\\Users\\17687\\eclipse-workspace\\TANG1");
		String[] list = file.list();
		for (String s : list) {
			System.out.println(s);
		}
	}
.classpath
.project
.settings
bin
hello1.txt
src
  1. public File[] listFiles():获取指定目录下的所有文件或者文件目录的File数组
	public void methodTest3() {
		File file = new File("G:\\Users\\17687\\eclipse-workspace\\TANG1");
		File[] list = file.listFiles();
		for (File s : list) {
			System.out.println(s);
		}
	}
G:\Users\17687\eclipse-workspace\TANG1\.classpath
G:\Users\17687\eclipse-workspace\TANG1\.project
G:\Users\17687\eclipse-workspace\TANG1\.settings
G:\Users\17687\eclipse-workspace\TANG1\bin
G:\Users\17687\eclipse-workspace\TANG1\hello1.txt
G:\Users\17687\eclipse-workspace\TANG1\src
File类的重命名功能
  1. public boolean renameTo(File dest):把文件重命名为指定的文件路径
    保证返回结果为true,需要file1在硬盘中是存在的,且file2不能存在
	public void methodTest4() {
		File file1 = new File("hello1.txt");
		File file2 = new File("G:\\Users\\17687\\eclipse-workspace\\TANG1\\src//hi.txt");
		boolean renameTo = file1.renameTo(file2);
		System.out.println(renameTo);// true
	}
File类的判断
  1. public boolean isDirectory():判断是否是文件目录
  2. public boolean isFile():判断是否是文件
  3. public boolean exists()
  4. public boolean canRead()
  5. public boolean canWrite()
  6. public boolean isHidden()
	public void methodTest5() {
		File file1 = new File("src");
		System.out.println(file1.isFile());
		System.out.println(file1.isDirectory());
		System.out.println(file1.exists());
		System.out.println(file1.canRead());
		System.out.println(file1.canWrite());
		System.out.println(file1.isHidden());
	}
false
true
true
true
true
false
File类的创建功能
  1. public boolean createNewFile():创建文件。若文件存在,则不创建,返回false
	public void methodTest6() throws IOException {
		File file = new File("hi.txt");
		if (!file.exists()) {
			file.createNewFile();
		}
	}
  1. public boolean mkdir():创建文件目录,如果此文件目录存在,则不创建,如果此文件目录的上层目录不存在,也不创建
  2. public boolean mkdirs():创建文件目录,如果上层文件目录不存在,一并创建
  • 若创建的文件或文件目录没有写盘幅路径,则默认在项目路径下
	public void methodTest8() {
		File file1 = new File("hi");
		boolean mkdir1 = file1.mkdir();
		System.out.println(mkdir1);// true

		File file2 = new File("hello\\hello1");
		boolean mkdir2 = file2.mkdir();
		System.out.println(mkdir2);// false

		File file3 = new File("hello\\hello1");
		boolean mkdirs = file2.mkdirs();
		System.out.println(mkdirs);// true
	}
File类的删除功能
  1. public boolean delete()
  • Java中的删除不走回收站
  • 要删除一个文件目录,注意该文件目录内不能包含文件或者文件目录
	public void methodTest7() {
		File file = new File("hi.txt");
		if (file.exists()) {
			file.delete();
		}
	}
其他
	public void methodTest9() throws IOException {
		File file1 = new File("hi.txt");
		boolean mkdir1 = file1.createNewFile();// 硬盘中存在hi.txt
		System.out.println(mkdir1);// true
		System.out.println(file1.length());// 0
		System.out.println(file1.isFile());// false
		System.out.println(file1.isDirectory());// true
		System.out.println(file1.exists());// true
		System.out.println(file1.canRead());// true
		System.out.println(file1.canWrite());// true
		System.out.println(file1.isHidden());// false

		System.out.println();

		File file2 = new File("hi2.txt");// 硬盘中不存在hi2.txt
		System.out.println(file2.length());// 0
		System.out.println(file2.isFile());// false
		System.out.println(file2.isDirectory());// false
		System.out.println(file2.exists());// false
		System.out.println(file2.canRead());// false
		System.out.println(file2.canWrite());// false
		System.out.println(file2.isHidden());// false
	}

在这里插入图片描述

五、应用练习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值