JAVA——File類的常見使用形式有以下幾種
- 創建指定路徑的File類,根據File類創建文件和文件夾
- 遞歸搜索某個文件夾下所有的文件夾和文件,遍歷輸出所有文件/統計文件夾大小
- 遞歸搜索某個文件夾下所有的文件夾和文件,遍歷輸出以.bp結尾的文件/統計文件夾大小
- 過濾當前路徑下所有滿足條件的文件或者文件夾,使用Filter過濾器
- 複製文件夾(遞歸)
- 創建指定路徑的File類,根據File類創建文件和文件夾
public void create() throws IOException{
File file1 = new File("FileDir");
File file = new File("FileDir/xx.txt");
if(file1.mkdir()){
System.out.println("創建文件夾成功");
}
if(file.createNewFile()){
System.out.println("創建文件成功");
}
}
- 遞歸搜索某個文件夾下所有的文件夾和文件,遍歷輸出所有文件/統計文件夾大小
public long serchFileAndSubFileSize(File file){
File[] filelist = file.listFiles();
long fileLenth = 0;
for (int i = 0; i < filelist.length; i++) {
File fileTem = filelist[i];
if(fileTem.isFile()){
System.out.print(" 找到文件: "+fileTem.getName());
fileLenth += fileTem.length();
}
else if(fileTem.isDirectory())
{
System.out.print("\n發現目錄: "+fileTem.getName());
serchFileAndSubFileSize(fileTem);
}
}
return fileLenth;
}
- 遞歸搜索某個文件夾下所有的文件夾和文件,遍歷輸出以.bp結尾的文件/統計文件夾大小
public long serchBpFileAndSubFileSize(File file){
File[] filelist = file.listFiles();
long fileLenth = 0;
for (int i = 0; i < filelist.length; i++) {
File fileTem = filelist[i];
if(fileTem.isFile()&&fileTem.getName().endsWith(".bp")){
System.out.print(" 找到.bp文件:-"+fileTem.getName());
fileLenth += fileTem.length();
}
else if(fileTem.isDirectory())
{
System.out.print("\n發現目錄: "+fileTem.getName()+"::::");
fileLenth+=serchBpFileAndSubFileSize(fileTem);
}
}
return fileLenth;
}
- 過濾當前路徑下所有滿足條件的文件或者文件夾,使用Filter過濾器
public void outSpecialFile(){
File file = new File("FileDir");
File[] fileList = file.listFiles(new FilenameFilter() {
@Override
public boolean accept(File file, String fileName) {
File wholeFile = new File(file, fileName);
if(wholeFile.isFile()&&wholeFile.getName().endsWith(".txt")){
return true;
}
return false;
}
});
public void copyDirectoryToDirectory(File sourceFile, File goalFile) throws Exception{
File goaldir = new File(goalFile,sourceFile.getName());
goaldir.mkdir();
File[] arr = sourceFile.listFiles();
for (File file : arr) {
if(file.isFile()){
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File(goaldir,file.getName())));
int buffer;
while((buffer=bis.read())!=-1){
bos.write(buffer);
}
bis.close();
bos.close();
}
else if(file.isDirectory()){
copyDirectoryToDirectory(file, goaldir);
}
}
}