Java.io.File类中的File类,从JDK1.0开始就支持. 后面相继推出的java.nio.file及java.nio.file.Files类等对file类进行了优化和改进。但目前仍有一些程序用的有java.io.file,所以仍然需要学习。Files类下一节讲解。
File类与java.io中定义的大多流式(输入流、输出流等)不同,File类是直接处理文件和文件系统的, 即没有指定数据是怎样从系统文件中读取或是写入的。
File类用于表示文件或是目录,只表示文件或目录的文件名、目录、大小等基本信息,不能用于文件内容的访问。访问文件内容可以用RandomAccessFile类和流等。
下面是File类常用的方法:
1 .file的构造方法 ,得到的是一个指向文件或是目录的引用(指针),并没有创建文件
File file=new File("d:\\users\\ww");
File file1=new File("d:/users/日记.txt"); //注意用 ‘\\’ 或是 ‘/’ 表示分隔符
File file2=new File("d:\\users","日记.txt"); //"日记.txt"是"d:\\users"下的子目录
2.判断 file 是不是目录,是不是文件 ,存不存在
file.isDirectory(); //file是不是个目录
file.isFile(); //file是不是个文件
file.exists(); //file存不存在,一般在对文件进行具体操作,比如,复制,移动的等都要先判断是否存在
3.创建目录、创建文件 ,都会在磁盘上真实创建
file.mkdir(); //创建目录
file.mkdis(); //创建多级目录
file3.createNewFile(); //创建文件
具体附上代码:
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
File file=new File("d:\\users\\ww");
File file1=new File("d:/users/www/ssw");
File file2=new File("d:\\users","日记.txt");
if(!file1.exists()){
file1.mkdirs(); //创建文件
}else{
file1.delete(); //删除文件
}
System.out.println("file1文件是否存在:"+file1.exists()); //判断文件目录是否存在true、false
//判断是否是个目录
System.out.println("file1文件是否是个目录:"+file1.isDirectory());
//判断是否是个文件
System.out.println("file1文件是否是个文件:"+file1.isFile());
if(!file2.exists()){
try {
file2.createNewFile(); //创建文件
} catch (IOException e) {
e.printStackTrace();
}
}else{
file2.delete();
}
//常用的File对象的API
System.out.println(file1); //打印的是文件全路径,即 d:\users\www\ssw
System.out.println(file1.getName()); //打印的是子目录(文件)的名字 ssw
System.out.println(file2.getName()); //日记.txt
System.out.println(file1.getParentFile()); //d:\users\www
System.out.println(file2.getParentFile()); //d:\users
}
}
运行结果:
file1文件是否存在:true
file1文件是否是个目录:true
file1文件是否是个文件:false
d:\users\www\ssw
ssw
日记.txt
d:\users\www
d:\users