首先我们来了解一下IO学习的主要知识点框架:
在学习流式部分前先学习非流式部分可以更好理解
File类:
File类在包java.io.File下,代表的是操作系统的文件对象(文件、文件夹)
File类提供了:定位文件,获取文件本身的信息、删除文件、创建文件(文件夹)等功能。
关键点:File类不能对文件进行读写操作,它仅描述文件本身的属性
一个File对象要么指的是目录要么指的是文件,它是目录或者文件路径名的抽象表示形式
File file1=new File("D:\\TestCode\\src\\testcode");
File file2=new File("D:\\TestCode\\src\\testcode\\Demo01.java");
file1和file2都是File的对象,file1是testcode这一目录的路径,而file2是Demo.java这个文件。
File创建对象支持绝对路径也支持相对路径
绝对路径:从硬盘符号开始的路径
D:\TestCode\src\testcode\Demo01.java
相对路径:从当前工程目录开始
testcode\Demo01.java
File类的常用方法:
方法 | 说明 |
isDirectory() | 判断此抽象路径名表示的File是否为文件夹(目录) |
isFile() | 判断此抽象路径名表示的File是否为文件 |
exists() | 判断此抽象路径名表示的File是否存在 |
getAbsolutePath() | 返回此抽象路径名的绝对路径名字符串 |
getPath() | 返回此抽象路径名的绝对路径名字符串 |
getName() | 返回此抽象路径名的绝对路径名字符串 |
mkdir() | 只能创建一级文件夹 |
createNewFile() | 创建一个新的空的文件 |
mkdirs() | 可以创建多级文件夹 |
public File(String pathname) | 根据文件路径创建文件对象 |
public File(String parent, String child) | 从父路径名字符串和子路径名字符串创建文件对象 |
isDirectory()方法判断此抽象路径名表示的File是否为文件夹(目录)注意不能是文件!
File file1=new File("D:\\TestCode\\src\\testcode");
File file2=new File("D:\\TestCode\\src\\testcode\\WC");
System.out.println(file1.isDirectory());
System.out.println(file2.isDirectory());
运行结果:
如果该路径名不是目录或者该目录不真实存在,则该方法会返回false。
createNewFile()方法可以创建一个文件
此时我的目录是没有Hello.txt文件的
public static void main(String[] args) throws IOException{
File file=new File("D:\\TestCode\\src\\testcode\\Hello.txt");
file.createNewFile();
}
运行了代码之后:
注意点:createNewFile()方法是没有参数的,而且使用时需要抛出异常为了避免此目录中存在不真实的目录。
File类的遍历:
list()方法与listfiles方法都会返回该File目录的子文件或目录,前者返回的是字符串数组而后者返回一个封装好的File类数组,list()方法返回的是目录下的文件或文件夹名称,list files()方法放回的是目录下文件或文件夹的路径(注意是数组!)。
项目文件:
两种遍历方式:
File file=new File("D:\\TestCode\\");
String file1[]=file.list();
for(String f:file1)
{
System.out.println(f);
}
File file=new File("D:\\TestCode\\");
File file1[]=file.listFiles();
for(File f:file1)
{
System.out.println(f);
}
需要注意的是如果File对象的路径并不存在或者File对象的路径代表的是一个文件而不是文件夹(目录),则会报出空指针异常。
以上是对File类的基本介绍。