boolean:createNewFile() 創建一個新的文件
boolean:delete() 刪除File對象
boolean:exists() 判斷當前File對象是否存在
File:getAbsoluteFile() 返回File對象的絕對路徑形式
String:getAbsolutePath()返回File對象的絕對路徑
long:getFreeSpace() 返回指定盤符空閑空間的大小
String:getName() 返回File對象的名稱
String:getParent() 返回上一級目錄
File:getParentFile()返回上一級目錄
String:getPath() 返回路徑
long:getTotalSpace() 返回指定盤符總的大小
long:getUsableSpace()返回指定盤符可用空間的大小
boolean:isAbsolute() 判斷是否為絕對路徑
boolean:isDirectory() 判斷是否為文件夾
boolean:isFile() 判斷是否為文件
boolean:isHidden() 判斷是否為隱藏
long:lastModified() 最后一次修改的時間,是從1970-1-1 00:00:00經過的毫秒數
long:length() 文件長度
String[]:list() 列出文件夾中的內容
String[]:list(FilenameFilter filter) 列出文件夾中的內容,指定文件過濾器
File[]:listFiles()列出文件夾中的內容
File[]:listFiles(FileFilter filter) 列出文件夾中的內容
File[]:listFiles(FilenameFilter filter) 列出文件夾中的內容
staticFile[]:listRoots() 列出根目錄
boolean:mkdir() 創建文件夾.如果上一級目錄不存在,則文件夾創建失敗
boolean:mkdirs()創建文件夾. 如果上一級目錄不存在,先創建上一級目錄,再創建當前文件夾
boolean:renameTo(File dest) 重命名,如果dest對象和當前File對象不在同一個目錄中,相當于文件移動
Path:toPath()
String:toString()
URI:toURI()
package com.wkcto.chapter06.file;
import java.io.File;
import java.io.IOException;
import java.util.Date;
/**
* 演示文件的相關屬性
* @author 蛙課網
*
*/
public class Test03 {
public static void main(String[] args) throws IOException {
// File f1 = new File("D:\\JavaSE\\video\\5-24 Map集合概述.avi"); //絕對路徑
File f1 = new File("hehe.txt"); //相對路徑
f1.createNewFile();
System.out.println( f1.getAbsolutePath() );
System.out.println( f1.getPath());
System.out.println( f1.getParent());
System.out.println( f1.getName());
System.out.println( f1.isDirectory());
System.out.println( f1.isFile());
System.out.println( f1.length());
System.out.println( f1.lastModified());
System.out.println( new Date(f1.lastModified()));
}
}
package com.wkcto.chapter06.file;
import java.io.File;
import java.io.FilenameFilter;
/**
* 演示文件夾的相關操作
* @author 蛙課網
*
*/
public class Test04 {
public static void main(String[] args) {
String folder = "d:/java1" ;
//顯示指定文件夾的內容
listsubDir( folder );
}
//顯示指定文件夾的內容, 只顯示.txt文本文件
private static void listsubDir(String folder) {
File dir = new File(folder);
//列出指定文件夾的內容
File[] listFiles = dir.listFiles(new FilenameFilter() {
//在匿名內部類對象中重寫抽象方法
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt") || name.endsWith(".java");
}
}) ;
for (File file : listFiles) {
System.out.println( file.getAbsolutePath() );
}
}
//顯示指定文件夾的內容
private static void listsubDir2(String folder) {
File dir = new File(folder);
//列出指定文件夾的內容
File[] listFiles = dir.listFiles();
for (File file : listFiles) {
System.out.println( file.getAbsolutePath() );
}
}
//顯示指定文件夾的內容
private static void listsubDir1(String folder) {
File dir = new File(folder);
//列出指定文件夾的內容
String[] subdirs = dir.list();
for (String string : subdirs) {
System.out.println( string );
}
}
}
package com.wkcto.chapter06.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* 演示文件夾操作的遞歸調用
* @author 蛙課網
*
*/
public class Test05 {
public static void main(String[] args) {
String folder = "d:/java1";
// 顯示指定文件夾的內容
// listsubDir(folder);
//文件夾的復制
copyDir( folder , "d:/java22");
}
//創建方法, 把srcfolder文件夾的內容復制到destFolder文件夾中, 包括子文件夾的內容
private static void copyDir(String srcFolder, String destFolder) {
//判斷目標文件夾是否存在,如果不目標文件夾不存在,需要創建一個新的文件夾
File dest = new File(destFolder);
if ( !dest.exists() ) {
dest.mkdirs();
}
//遍歷srcFolder源文件夾的內容, 復制到destFolder目錄中
File src = new File(srcFolder);
File[] listFiles = src.listFiles();
for (File file : listFiles) {
if (file.isFile()) {
// 直接復制文件 , 需要先構建目標文件
File destFile = new File(destFolder, file.getName());
copyFile( file, destFile); //復制文件
}else{
//file是文件夾, 先在destFolder文件夾下創建一個與file同名的文件夾
File destSubDir = new File(destFolder, file.getName() );
// destSubDir.mkdir();
//再把file文件夾的內容復制到destFoler/file目錄下
copyDir(file.getAbsolutePath(), destSubDir.getAbsolutePath());
}
}
}
//文件復制
private static void copyFile(File srcfile, File destFile) {
try(
FileInputStream fis = new FileInputStream(srcfile);
FileOutputStream fos = new FileOutputStream(destFile);
) {
byte [] bytes = new byte[1024];
int len = fis.read(bytes);
while ( len != -1){
fos.write(bytes, 0, len);
len = fis.read(bytes);
}
} catch (Exception e) {
// TODO: handle exception
}
}
// 顯示指定文件夾的內容, 包括子文件夾的內容
private static void listsubDir(String folder) {
File dir = new File(folder);
// 列出指定文件夾的內容
File[] listFiles = dir.listFiles();
for (File file : listFiles) {
System.out.println(file.getAbsolutePath());
//判斷file對象如果是文件夾, 把file子文件夾的內容也顯示出來
if (file.isDirectory() ) {
listsubDir( file.getAbsolutePath() ); //遞歸調用
}
}
}
}
總結:
必須掌握FileInputStrea/FileOutputStream字節流實現文件的讀寫
掌握FileReader/FileWriter字符流實現文件的讀寫
理解對象序列化與反序列化