Java中的File类
Java中对象至上,因此Java内部将操作系统中对文件的操作抽象成一个类,就是所谓的File类。该类提供了一些方法供用户使用,以至于通过程序来操纵文件。但该类并不能对文件的内容做任何操作,对文件的内容的操作需要用到IO流。
主要的构造方法
1.File(String pathname)
将给定的字符串作为文件路径,来创建File实例
eg:
String pathname = "D:" + File.separator + "test.txt";
File file = new File(pathname);
Tips: pathname可以是相对路径也可以是绝对路径,甚至该路 径可以不存在(因为此时只是实例化该类对象,并没有涉及到文件存在)。
绝对路径:从盘符开始的一个绝对的路径,唯一。
相对路径:相对于当前所处的文件的路径。不唯一。
File.separator:因为操作系统的不同,文件的路径分隔符也不同Window下‘\’,而Linux下是‘/’,而为了使得程序具有跨平台特性,所以使用File.separator,可以自动检测具体使用哪个斜杠。
2. File(String parent, String child)
parent为父目录的路径字符串,child为文件名的字符串
eg:
File file = new File("D:" + File.separator,"test.txt");
主要的操作方法
1.创建文件 public boolean createNewFile() throws IOException
eg:
public static void main(String[] args) {
String pathName = "D:" + File.separator + "test.txt";
File file1 = new File(pathName);
try {
file1.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
文件不存在则创建文件,创建成功返回true,否咋返回false。程序抛出一个IOException,是一个受查异常,需要处理,否则编译不能通过。
2.删除文件 public boolean delete()
eg:
public static void main(String[] args) {
String pathName = "D:" + File.separator + "test.txt";
File file1 = new File(pathName);
System.out.println( file1.delete());
}
文件存在且可以删除返回true,否咋返回false。文件删除后,在回收站找不到,当删除一个文件夹时,该文件夹必须为空。
3.判断文件是否存在 public boolean exists()
eg:
public static void main(String[] args) {
String pathName = "D:" + File.separator + "test.txt";
File file1 = new File(pathName);
System.out.println(file1.exists());
}
4.获取文件的大小 public long length()
eg:
public static void main(String[] args) {
String pathName = "D:" + File.separator + "test.txt";
File file1 = new File(pathName);
System.out.println( file1.length());
}
返回值为long类型,单位为字节。
5.创建目录(无论有多少级父目录,都会创建) public boolean mkdirs()
eg:
public static void main(String[] args) {
String path = "D:" + File.separator +
"JavaCode" + File.separator + "test.java";
File file = new File(path);
System.out.println(file.mkdirs());
}
该方法将一切看作目录,即文件夹,因此最后的test.java也会称为一个文件夹。
6.判断路径是否为一个文件 public boolean isFile()
eg;
public static void main(String[] args) {
String path = "D:" + File.separator + "JavaCode" +
File.separator + "test.java" + File.separator + "hehe";
File file = new File(path);
System.out.println(file.isFile()); // false
}
6.判断路径是否为一个目录 public boolean isDirectory()
eg:
public static void main(String[] args) {
String path = "D:" + File.separator + "JavaCode" +
File.separator + "test.java" + File.separator + "hehe";
File file = new File(path);
System.out.println(file.isDirectory()); // true
}
7.获取绝对路径 public String getAbsolutePath();
eg
public static void main(String[] args) {
String path = "hello.txt"; // 工程文件下有该文件
File file = new File(path);
System.out.println(file.getAbsolutePath());
}
8.获取当前目录下的所有文件或文件夹 public File[] listFiles()
public static void main(String[] args) {
String path = "C:";
File file = new File(path);
File[] files = file.listFiles();
for(File file1 : files){
System.out.println(file1.getAbsolutePath());
}
}