IO系列之使用File類操作文件

1. File類介紹

  • 五個核心類:File、InputStream、OutputStream、Reader、Writer
  • 一個核心接口:Serializable

在整個java.io包裏面,File類是唯一一個與文件本身操作有關的類,但是不涉及具體內容。文件本身是指文件的創建、刪除等操作

2. 通過構造方法設置文件路徑

  • public File(String pathname)

pathname爲全路徑

  • public File(String parent, String child)

parent 父路徑

child 子路徑

3. File類常用操作

創建文件

public boolean createNewFile()

刪除文件

public boolean delete()

判斷文件是否存在

public boolean exists()

代碼示例

        //設置文件路徑
        File file = new File("E:\\test.txt");
        try {
            //如果文件存在則刪除
            if(file.exists()){
                file.delete();
            }else {
                //如果文件不存在則創建
                file.createNewFile();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

File.separator 文件分隔符

//設置文件路徑
File file = new File("E:"+File.separator+"test.txt");

獲取父路徑

public File getParentFile()

創建文件夾

public boolean mkdir()

創建多級文件夾

public boolean mkdirs()

代碼示例

 //設置文件路徑
 File file = new File("E:"+File.separator+"demo"+File.separator+"demo2"+File.separator+"test.txt");
 
 //如果父路徑不存在則創建父路徑
 if(!file.getParentFile().exists()){
// file.getParentFile().mkdir();
 //創建多級目錄
file.getParentFile().mkdirs();
}

獲取文件大小

public long length()

判斷是否是文件

public boolean isFile()

判斷是否是文件夾

public boolean isDirectory()

獲取文件名

public String getName()

獲取文件路徑

public String getPath()

獲取上次修改時間

public long lastModified() 返回的是時間的毫秒數

獲取絕對路徑

public String getAbsolutePath()

判斷是否是絕對路徑

public boolean isAbsolute()

使用示例

 File file = new File("E:"+File.separator+"demo"+File.separator+"1.txt");
//判斷是否是文件
if(file.isFile()){
    System.out.println("是文件");
}
//判斷是否是目錄
if(file.getParentFile().isDirectory()){
System.out.println("父目錄是文件夾");
}
System.out.println("文件名是:"+file.getName());
System.out.println("文件路徑:"+file.getPath());
//獲取文件大小
long length = file.length();
 System.out.println("文件大小:"+(new BigDecimal(length).
divide(new BigDecimal(1024*1024),2,BigDecimal.ROUND_HALF_UP))+"M");
//獲取文件上次修改日期
Date modifyTime = new Date(file.lastModified()); System.out.println("文件的最近修改日期是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(modifyTime));

獲取目錄的所有文件名

public String[] list()

獲取目錄下的所有文件

public File[] listFiles()

示例代碼

 File file = new File("E:"+File.separator+"demo");
String[] fileNames = file.list();
for(String fileName : fileNames){
   System.out.println(fileName);
}

//列出子目錄
File[] files = file.listFiles();
for(File file1 : files){
    System.out.println(file1.getName()+"  "+(file1.isDirectory()?"文件夾":"文件"));
}
發佈了94 篇原創文章 · 獲贊 94 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章