File类
java.io.File类:文件和目录路径名的抽象表示形式,与平台无关
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
File对象可以作为参数传递给流的构造函数
常用方法
①访问文件名:getName()、getPath()、getAbsoluteFile()、getAbsolutePath()、getParent()、renameTo(File newName)
②文件操作相关:createNewFile()、delete()
③文件检测:exists()、canWrite()、canRead()、isFile()、isDirectory()
④目录操作相关:mkDir()、mkDirs()、list()、listFiles()
⑤获取常规文件信息:lastModified()、length()
举例
import java.io.File;
import java.io.IOException;
import org.junit.Test;
/**
* java.io.File类
* 1.凡是与输入、输出相关的类、接口等都定义在java.io包下
* 2.File是一个类,可以有构造器创建其对象。此对象对应着一个文件或文件目录
* 3.File类对象与平台无关。
* 4.File中的方法,仅涉及如何创建、删除、重命名等。只要涉及文件内容的,File是无能为力的,必须由IO流完成
* 5.File类的对象常作为io流的具体类的构造器的形参
*/
public class TestFile {
/**
* 文件操作相关
* createNewFile()
* delete()
*
* 目录操作相关
* mkDir():创建一个文件目录。只有在上层文件目录存在的情况下,才能返回true
* mkDirs():创建一个文件目录。若上层文件目录不存在,一并创建
* list():
* listFiles():
* @throws IOException
*/
@Test
public void test3() throws IOException {
File file1 = new File("e:\\io\\hello.txt");
System.out.println(file1.delete());
//新建文件
if(!file1.exists()) {
boolean b = file1.createNewFile();
System.out.println(b);
}
//新建目录
File file2 = new File("e:\\io\\io2");
if(!file2.exists()) {
boolean b = file2.mkdir();
System.out.println(b);
}
//将目录下的文件名以string数组的形式返回
File file3 = new File("E:\\Java_backup");
String[] strs = file3.list();
for(int i=0;i<strs.length;i++) {
System.out.println(strs[i]);
}
//返回File类的引用,具有类的所有属性和方法
File[] files = file3.listFiles();
for(int i=0;i<files.length;i++) {
System.out.println(files[i].getName());
}
}
/**
* 文件检测
* exists()
* canWrite()
* canRead()
* isFile()
* isDirectory()
*
* 获取常规文件信息
* lastModified()
* length()
*/
@Test
public void Test2() {
File file1 = new File("e:\\io\\hello.txt");
File file2 = new File("e:\\io\\io1");
//操作文件
System.out.println(file1.exists());
System.out.println(file1.canWrite());
System.out.println(file1.canRead());
System.out.println(file1.isFile());
System.out.println(file1.isDirectory());
System.out.println(file1.lastModified());
System.out.println(file1.length());
System.out.println();
//操作目录
System.out.println(file2.exists());
System.out.println(file2.canWrite());
System.out.println(file2.canRead());
System.out.println(file2.isFile());
System.out.println(file2.isDirectory());
System.out.println(file2.lastModified());
System.out.println(file2.length());
}
/**
* 路径:
* 绝对路径:包括盘符在内的完整的文件路径
* 相对路径:在当前文件目录下的文件的路径
*
* getName()
* getPath()
* getAbsoluteFile()
* getAbsolutePath()
* getParent()
* renameTo(File newName) 将一个文件改成另一个文件
*/
@Test
public void test1() {
File file1 = new File("e:\\io\\hello.txt");
File file2 = new File("hello1.txt");
File file3 = new File("e:\\io\\io1");
System.out.println(file1.getName());
System.out.println(file1.getPath());
System.out.println(file1.getAbsoluteFile());
System.out.println(file1.getParent());
System.out.println(file1.getAbsolutePath());
System.out.println(file3.getName());
System.out.println(file3.getPath());
System.out.println(file3.getAbsoluteFile());
System.out.println(file3.getParent());
System.out.println(file3.getAbsolutePath());
//renameTo(File newName):重命名
//file1.renameTo(file2):将file1重命名为file2
//要求:file1文件一定存在,file2一定不存在
boolean b = file1.renameTo(file2);
System.out.println(b);
}
}