JAVA之文件操作
阿新 • • 發佈:2019-05-08
dir 匿名 tabs ioe exceptio 使用 目錄 匿名內部類 文件操作
一、常用方法:
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) throwsIOException { 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
JAVA之文件操作