File类
来自CloudWiki
目录
File类
绝对文件名和相对文件名
在文件系统中,每个文件都存放在一个目录下。绝对文件名是有文件名和它的完整路径以及驱动器字母组成。例如C:/book/Welcome.java。相对文件名是相对与当前工作目录的。对于相对文件而言,完整目录被忽略。例如welcome.java是相对文件名,如果当前目录是C:/book,绝对文件名将是C:/book。 在程序中,不要直接使用绝对文件名。如果使用了像C:/book/welcome.java之类的文件名,当程序和文件的位置变化了,相关的程序就不能运行了。
【注意】在windows中目录的分隔符是反斜杠(\),但是在java中反斜杠是一个特殊的字符,斜杠(/)是java中的目录分隔符。
构建File类实例
使用File类:
import java.io.File;
File类提供了三个构造方法,创建实例化对象,具体如下:
- new File(String pathname): 通过将给定路径来创建一个新File实例。例如:
File file = new File("cache/01_cache.txt");
- new File(String parent, String child): 根据parent路径名字符串和child路径名创建一个新File实例。parent是指上级目录的路径,完整的路径为parent+child。例如:
File file = new File("cache","01_cache.txt");
- new File(File parent, String child): 根据parent抽象路径名和child路径名创建一个新File实例。parent是指上级目录的路径,完整的路径为parent.getPath()+child。
File dir=new File("cache");//目录 File file = new File(dir,"01_cache.txt");
文件常用操作
File类包含了获得一个文件/目录的属性,以及对文件/目录进行改名和删除的方法。下面程序演示了File类常用的方法:
初始化文件实例
File file = new File("myfile.txt");
创建文件
try{ if(file.createNewFile()) System.out.println("文件创建成功!"); else System.out.println("出错了,该文件已经存在。"); } catch(IOException ioe) { ioe.printStackTrace(); }
判断文件是否存在
System.out.println("判断文件是否存在" + file.exists());
读取文件路径
// 读取文件路径(相对路径) System.out.println("读取文件路径" + file.getPath()); // 读取文件绝对路径 System.out.println("读取文件绝对路径" + file.getAbsolutePath()); // 读取文件的父级路径 System.out.println("读取文件的父级路径" + new File(file.getAbsolutePath()).getParent());
判断文件属性
// 读取文件的大小 System.out.println("读取文件的大小" + file.length() + "byte");// 字节 // 判断文件是否被隐藏 System.out.println("判断文件是否被隐藏" + file.isHidden()); // 判断文件是否可读 System.out.println("判断文件是否可读" + file.canRead()); // 判断文件是否可写 System.out.println("判断文件是否可写" + file.canWrite()); // 判断文件是否为文件夹 System.out.println("判断文件是否为文件夹" + file.isDirectory());
完整代码
package task8; import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) { // TODO Auto-generated method stub File file = new File("myfile.txt"); try{ if(file.createNewFile()) System.out.println("文件创建成功!"); else System.out.println("出错了,该文件已经存在。"); } catch(IOException ioe) { ioe.printStackTrace(); } System.out.println("判断文件是否存在" + file.exists()); // 读取文件名称 System.out.println("读取文件名称" + file.getName()); // 读取文件路径(相对路径) System.out.println("读取文件路径" + file.getPath()); // 读取文件绝对路径 System.out.println("读取文件绝对路径" + file.getAbsolutePath()); // 读取文件的父级路径 System.out.println("读取文件的父级路径" + new File(file.getAbsolutePath()).getParent()); // 读取文件的大小 System.out.println("读取文件的大小" + file.length() + "byte");// 字节 // 判断文件是否被隐藏 System.out.println("判断文件是否被隐藏" + file.isHidden()); // 判断文件是否可读 System.out.println("判断文件是否可读" + file.canRead()); // 判断文件是否可写 System.out.println("判断文件是否可写" + file.canWrite()); // 判断文件是否为文件夹 System.out.println("判断文件是否为文件夹" + file.isDirectory()); } }
程序运行结果,如图6-7所示。
图6-7 File类示例运行结果
返回 Java程序设计