File类:
File类在包java.io.File下,代表操作系统的文件对象(文件,文件夹)。
File类常用方法:
1.创建file对象:
File file1 = new File("D:\\临时文件\\8.三角形.txt");
取系统分隔符的函数:separator
File file1 = new File("D:"+File.separator+"\\临时文件\\8.三角形.txt");
把路径粘贴过来时可去掉前面多余字符:
文件字节大小:
long size = file1.length();
System.out.println(size);//1581
File创建对象既支持绝对路径,也支持相对路径:
绝对路径即从通过“D盘->文件夹->文件->属性->安全”获取的路径。
相对路径一般是定位模块中的文件(即项目里面的文件),相对到工程下,依赖于平台。
建立模块中的文件:src->new->file
package wryyyyy;
import java.io.File;
public class FileDemo
{
public static void main(String[] args)
{
File file1 = new File("src/data.txt");
System.out.println(file1.length());
}
}
相对路径获取:
选中文件->右键->Copy Path/Reference->Path From Content Root->粘贴
File也可以创建文件夹对象:
File file1 = new File("D:\\临时文件夹");
注意:无法用file1.length()拿文件夹大小
判断文件路径是否存在:
System.out.println(file1.exists());
File类常用方法:
判断文件类型,获取文件信息:
package wryyyyy;
import java.io.File;
import java.text.SimpleDateFormat;
public class FileDemo
{
public static void main(String[] args)
{
//情景:接收别人传来的文件
File f1 = new File("D:\\临时文件夹\\abc.jpg");
//获取绝对路径
System.out.println(f1.getAbsolutePath());//到盘符
//获取文件定义的时候使用的路径
System.out.println(f1.getPath());//定义时用的相对路径,拿到的也是相对的;定义用的绝对,拿到也是绝对
//获取文件名称(带后缀)
System.out.println(f1.getName());
//获取文件大小(即字节个数)
System.out.println(f1.length());
//获取文件的最后修改时间
long time = f1.lastModified();
System.out.println("最后修改时间:" + new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(time));
//判断是文件还是文件夹
System.out.println(f1.isFile());
System.out.println(f1.isDirectory());
}
}
创建文件,删除文件功能:
注意:
delete方法不走回收站;如果删除的是一个文件,且文件没有被占用则直接删除
delete方法默认只能删除空文件夹
package wryyyyy;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
public class FileDemo
{
public static void main(String[] args) throws IOException {
File f = new File("src/data.txt");
//创建新文件,成功返回true,以后几乎不用,因为会自动创建
/*
* 如果f1.createNewFile()下面出现红线,则需要抛出异常:alt+enter
* */
System.out.println(f.createNewFile());
File f1 = new File("src/data1.txt");
System.out.println(f1.createNewFile());//此时发现多了一个文件
//mkdir创建一级目录
File f2 = new File("D:/临时文件夹/aaa");//前面都有,后面只有一级需要创建
System.out.println(f2.mkdir());
//mkdirs多级创建
File f3 = new File("D:/临时文件夹/aaa/bbb/ccc");
System.out.println(f3.mkdirs());
//删除文件或文件夹
System.out.println(f3.delete());
//只能删除文件夹
System.out.println(f2.delete());
}
}
File类的遍历功能:
package wryyyyy;
import java.io.File;
public class FileDemo
{
public static void main(String[] args)
{
File f1 = new File("D:/临时文件夹");
String[] names = f1.list();
//定位一个目录
for (String name : names)
{
System.out.println(name);//只能拿一级
}
//一级文件对象
File[] files = f1.listFiles();
for (File file : files)
{
System.out.println(file.getAbsolutePath());
}
}
}
注意事项: