File类是用来操作文件或目录属性而不可以操作文件内容的类。
文件目录分隔符
File的构造方法
如何创建File对象(三种构造方法)
1、File f = new File("D:/myDir/hello.txt");
2、File f = new File(“D:/myDir”, “hello.txt”);
3、File parent = new File("D:/myDir"); File f = new File(parent, "hello.txt");
File类操作文件的常用方法
代码示例
package test1;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
import org.junit.Test;
import utils.IOUtils;
/**
* @author ShanHai:
* @version 创建时间:2021年8月20日 上午10:53:32
*/
public class TestIo {
/**
* 需求:将计算机D盘根目录中所有的mp3格式的文件名称输出到控制台
* 创建File对象dir,以D盘路径作为方法的参数
* 通过File对象dir的list方法获得该目录下的所有文件及目录,并保存到数组中 遍历该数组, 通过File类的isFile方法判断是否是文件
* 如果是文件,通过String类的常用方法判断该文件的后缀是否是mp3格式
* 向控制台输出满足条件的文件名称
*
* @param args
*/
public static void main(String[] args) {
// 创建File对象,指定文件所在的目录(文件夹)
// File f=new File("C"+File.separator+"Users\\Lenovo\\Documents");
File f = new File("C:\\Users\\Lenovo\\Documents\\Hello");
File[] fs = f.listFiles();// 获得当前目录(文件夹)下所有的文件及文件夹(File对象)
// 遍历数组,打印输出所有文件
// 判断后缀名mp3
for (File fi : fs) {
// System.out.println(fi);
// System.out.println(fi.getName());
if (fi.isFile()) {// 判断是否是文件
if (fi.getName().endsWith("mp3")) {// 是文件判断是否是mp3 .endsWith
System.out.println(fi.getName());
}
}
}
// 判断后缀名txt
for (File fi : fs) {
String name = fi.getName();// 获取文件名
if ("txt".equals(IOUtils.getSuffix(name))) {// 判断文件后缀名是txt
System.out.println(name);
}
}
}
/**
* 查询磁盘中是否存在指定文件 通过Scanner对象接收用户输入的文件路径 判断这个路径是否是一个文件,如果是则提示系统存在该文件
* 判断文件是否可读,如果是则提示该文件可读
*/
@Test
public void test1() {
// 创建并实例化File对象
File f = new File("C:\\Users\\Lenovo\\Documents\\Hello");
System.out.print("请您输入一个文件名:");
String name = new Scanner(System.in).next();
// listFiles():获得文件夹中所有的文件及文件夹
for (File fi : f.listFiles()) {
if (name.equals(fi.getName())) {// 获得文件的名称
System.out.println("找到了你要查找的文件,文件名是:" + fi.getName());
if (fi.canRead()) {// 判断文件是否可读可写
System.out.println("可读");
System.out.println(fi.canWrite());
}
}
}
}
/**
* exists:判断文件是否存在
*/
@Test
public void test2() {
File f = new File("C:\\Users\\Lenovo\\Documents\\Hello\\三国演义第1回.txt");
System.out.println(f.exists());
}
/**
* isFil判断File对象是否是文件或isDirectory文件夹
*/
@Test
public void test3() {
File f = new File("C:\\Users\\Lenovo\\Documents\\Hello\\三国演义第1回.txt");
System.out.println(f.isFile());//判断File对象是否是一个文件,true为是
File f1 = new File("C:\\Users\\Lenovo\\Documents\\Hello");
System.out.println(f1.isDirectory());//判断File对象是否是一个文件夹。true代表是
}
/**
* createNewFile:创建文件
* @throws IOException
*/
@Test
public void test4() throws IOException {
File f=new File("C:\\Users\\Lenovo\\Documents\\Hello\\三国演义第6回.doc");
f.createNewFile();
System.out.println("创建文件成功");
}
/**
* delete:删除文件
*/
@Test
public void test5(){
File f=new File("C:\\Users\\Lenovo\\Documents\\Hello\\三国演义第6回.doc");
f.delete();
System.out.println("文件删除成功");
}
/**
* getAbsolutePath:获得文件或文件夹的绝对路径(全路径)
*/
@Test
public void test6(){
File f=new File("C:\\Users\\Lenovo\\Documents\\Hello\\三国演义第5回.txt");
System.out.println(f.getAbsolutePath());
}
/**
* mkdir:创建文件夹
* mkdirs:创建多级目录
*/
@Test
public void test7(){
File f=new File("C:\\Users\\Lenovo\\Documents\\Hello\\Java\\world");
f.mkdirs();
System.out.println("文件夹创建成功");
}
/**
* getParent:获取上级目录
*/
@Test
public void test8(){
File f=new File("C:\\Users\\Lenovo\\Documents\\Hello\\Java\\world");
System.out.println(f.getParent());
}
}