JAVA之文件操作
一、常用方法:
1、打印文件路径:
使用.getName()可以打印出相对路径,也可以打印出文件/夹名
使用.getAbsolutePath()可以打印出绝对路径。
使用.getCanonicalPath()可以打印出绝对路径。
getAbsolutePath()和getCanonicalPath()方法的区别:
- 使用getCanonicalPath()需要处理异常,即向上抛出异常或要使用try catch;而getAbsolutePath()不需要;
- getCanonicalPath()的当前路径不特意标识,而getAbsolutePath()会写明,例如:
D:\IDEA CODE\kkx-java\.idea和D:\IDEA CODE\kkx-java\.\.idea
2、判断是否是文件:
使用.isFile()方法
3、判断是否是路径:
使用.isDirectory()方法
4、判断磁盘上是否存在:
使用.exists()方法
5、创建文件夹:
使用.mkdir()方法
6、创建文件:
使用.createNewFile()方法
二、应用:
import java.io.File; import java.io.FileFilter; import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException { File file1 = new File("."); //小技巧:写相对路径时,如果拿不准相对路径的位置, // 可以写“.”,然后打印出来,就能知道相对路径的位置了 System.out.println(file1.getName()); System.out.println(file1.getAbsolutePath()); System.out.println(file1.getCanonicalPath()); System.out.println(file1.isFile()); System.out.println(file1.isDirectory()); System.out.println(file1.exists()); //结果: // . // D:\IDEA CODE\kkx-java\. 绝对路径是到该文件所在的工程的根目录,而不是所在包名 // D:\IDEA CODE\kkx-java // false // true // true File file2 = new File("a.txt"); //小技巧:写相对路径时,如果拿不准相对路径的位置, // 可以写“.”,然后打印出来,就能知道相对路径的位置了 System.out.println(file2.getName()); System.out.println(file2.getAbsolutePath()); System.out.println(file2.getCanonicalPath()); //getAbsolutePath()与getCanonicalPath()的区别: //1、getCanonicalPath()需要处理异常;而getAbsolutePath()不需要 //2、getCanonicalPath()的当前路径不特意标识,而getAbsolutePath()会写明点,例如: //D:\IDEA CODE\kkx-java\.idea和D:\IDEA CODE\kkx-java\.\.idea System.out.println(file2.isFile()); System.out.println(file2.isDirectory()); System.out.println(file2.exists()); //当a.txt不存在时,结果: // a.txt // D:\IDEA CODE\kkx-java\a.txt // D:\IDEA CODE\kkx-java\a.txt // false // false // false
三、具体应用:
1、创建文件,已经存在就不创建,否则创建:
import java.io.File; import java.io.FileFilter; import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException { File file2 = new File("a.txt"); System.out.println(file2.getName()); if(!file2.exists()){ file2.createNewFile(); //创建文件,创建在当前路径的工程下 } } }
2、打印当前路径下的所有以.java结尾的文件:
import java.io.File; import java.io.FileFilter; import java.io.IOException; public class FileDemo { public static void main(String[] args) throws IOException { File file1 = new File("."); files = file1.listFiles(new FileFilter() { //重写匿名内部类 @Override public boolean accept(File pathname) { return pathname.isFile(); } }); System.out.println("=================="); for(File f:files){ if(f.getName().endsWith(".java")){ System.out.println(f.getCanonicalPath()); } } } //结果: // ================== // D:\IDEA CODE\kkx-java\a.java // D:\IDEA CODE\kkx-java\kkx-java.java
每天进步一点点,快乐生活多一点。