示例代码:
import java.io.File;
import java.io.IOException;
import java.util.Date;
import org.junit.Test;
/**
* java.io.File类
* 1.凡是与输入、输出相关的类、接口等,都定义在java.io包下
* 2.File是一个类,可以有构造器创建其对象。此对象对应这一个文件(.txt .avi .doc .ppt .mp3 .jpg)或目录。
* 3.File类对象是与平台无关的。
* 4.File中方法,仅涉及到如何创建、删除、重命名等等。只要设计到文件内容的,File是无能为力的,必须由io流来完成。
* 5.File类的对象常作为io流的具体类的构造器的形参。
*/
public class TestFile {
/**
* 路径:
* 绝对路径:包括盘符在内的完整的文件路径
* 相对路径:在当前文件目录下的文件的路径
*/
@Test
public void test1() {
File file1 = new File("F:\\code.txt");
File file2 = new File("F:/code.txt");
File file3 = new File("hello.txt");
/**
* 访问文件名:
* getName()
* getPath()
* getAbsoluteFile()
* getAbsolutePath()
* getParent()
* renameTo(File newName):将此文件重命名为newName,要求此文件一定存在,newName文件一定不存在。
*/
System.out.println(file1.getName());
System.out.println(file1.getPath());
System.out.println(file1.getAbsoluteFile());
System.out.println(file1.getAbsolutePath());
System.out.println(file1.getParent());
System.out.println();
System.out.println(file2.getName());//结果与file1的完全一致
System.out.println(file2.getPath());
System.out.println(file2.getAbsoluteFile());
System.out.println(file2.getAbsolutePath());
System.out.println(file2.getParent());
boolean f = file1.renameTo(new File("file.txt"));
System.out.println(f);
}
/**
* 文件检测
* exists():是否存在
* canWrite():是否可写
* canRead():是否可读
* isFile():是否是文件
* isDirectory():是否是目录
*/
@Test
public void test2() {
File file = new File("file.txt");
System.out.println(file.exists());
System.out.println(file.canWrite());
System.out.println(file.canRead());
System.out.println(file.isFile());
System.out.println(file.isDirectory());
}
/**
* 获取常规文件信息
* lastModified():上次修改的时间,返回long
* length():文件的长度
*/
@Test
public void test3() {
File file = new File("file.txt");
System.out.println(new Date(file.lastModified()));
System.out.println(file.length());
}
/**
* 文件操作相关
* createNewFile()
* delete()
*/
@Test
public void test4() throws IOException {
File file = new File("newfile.txt");//现在这个相对路径不存在此文件
if(!file.exists()) {
boolean nf = file.createNewFile();//在上面的那个路径上创建文件
System.out.println("file:"+nf);
}
if(file.exists()) {
boolean nf = file.delete();
System.out.println("delete file:" + nf);
}
}
/**
* 目录操作相关
* mkDir():有父目录才能创建目录
* mkDirs():可以把没有的父目录一并创建出来
* list():以String[]类型返回目录下的所有文件
* listFiles():以File[]类型返回目录下的所有文件
*/
@Test
public void test5() {
File file1 = new File("D:/goodnight");
if(!file1.exists()) {
boolean md = file1.mkdir();
System.out.println("mkdir:"+md);
}
if(file1.exists()) {
System.out.println("file1 delete:" + file1.delete());
}
File file2 = new File("D:/hello/world/heheda");
if(!file1.exists()) {
boolean md = file2.mkdirs();
System.out.println("mkdirs:" + md);
}
if(file2.exists()) {
System.out.println("file2 delete:" + file2.delete());
}
File file3 = new File("D:/");
String[] ls = file3.list();
for (String string : ls) {
System.out.println(string);
}
File[] files = file3.listFiles();
for (File file : files) {
System.out.println(file.getName());
}
}
}