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