/**
* 实例116 显示文件的基本信息
*
*/
import java.io.*; public class FileDemo_01 { public static void main(String[] args) { File file = new File("E:/baidu player/keytoolcmd.txt"); // 根据指定的路径创建一个File对象 System.out.println("文件名为:" + file.getName()); // 获取该File对象的名字 System.out.println("绝对路径为:" + file.getAbsolutePath()); // 获取该File对象的绝对路径 System.out.println("路径为:" + file.getPath()); // 获取该File对象的相对路径 System.out.println("所属磁盘目录为:" + file.getParent()); if(!file.exists()){ file.mkdir(); } System.out.println("此路径名表示的文件是一个目录吗?:" + file.isDirectory()); // 判断该File对象是不是目录 System.out.println("它是处于可读状态吗?:" + file.canRead()); // 判断该File对象是否可读 System.out.println("它是处于可写状态吗?" + file.canWrite()); // 判断该File对象是否可写 System.out.println("该文件长度为:" + file.length() + "字节"); // 获取该File对象中的字符长度 System.out.println("此文件最后修改的时间为:" + file.lastModified()); // 获取该File对象最后修改时间 } }
输出:
文件名为:keytoolcmd.txt
绝对路径为:E:\baidu player\keytoolcmd.txt
路径为:E:\baidu player\keytoolcmd.txt
所属磁盘目录为:E:\baidu player
此路径名表示的文件是一个目录吗?:true
它是处于可读状态吗?:true
它是处于可写状态吗?true
该文件长度为:0字节
此文件最后修改的时间为:1336188385371
/**
* 实例117 显示目录的基本信息
*
*/
public class FileDemo_02 { static class MyFilenameFilter implements FilenameFilter{ private String sf = ""; // 定义文件的后缀名 public MyFilenameFilter(String surfix){ // 用构造方法为sf变量赋值 this.sf = surfix; } @Override public boolean accept(File dir, String name) { // 重写FilenameFilter接口中的accept方法,判断指定的文件是否在指定的目录中 if(new File(dir, name).isFile()){ // 如果当前的File对象是一个文件,则返回它是否以指定的后缀结束,是返回true return name.endsWith(sf); }else{ //如果是文件夹,则直接返回true return true; } } } public static void getAllFiles(String dirName){ // 列出指定目录下所有文件和子目录的路径 //如果dir不以文件分隔符结尾,自动添加文件分隔符。 if(!dirName.endsWith(File.separator)){ dirName = dirName + File.separator; } File dirFile = new File(dirName); // 如果dir对应的文件不存在,或者不是一个文件夹,则退出 if(!dirFile.exists() || (!dirFile.isDirectory())){ System.out.println("失败!找不到指定的目录:" + dirName); return; } // 列出源文件夹下所有文件(包括子目录) File[] fileArray = dirFile.listFiles(); for(int i=0; i< fileArray.length; i++){ if(fileArray[i].isFile()){ System.out.print(fileArray[i].getAbsolutePath() + " "); }else if(fileArray[i].isDirectory()){ System.out.println(fileArray[i].getAbsolutePath() + " "); FileDemo_02.getAllFiles(fileArray[i].getAbsolutePath()); } if((i + 1) % 2 == 0 ) System.out.println(); } } public static void getFilesByFilter(FilenameFilter filter, // 获取在指定目录下符合指定后缀文件名的所有文件 String dir_Path){ if(!dir_Path.endsWith(File.separator)){ //如果目录路径不是以文件分隔符结尾则自动添加文件分隔符。 dir_Path = dir_Path + File.separator; } File dir_File = new File(dir_Path); if(!dir_File.exists() || (!dir_File.isDirectory())){ // 如果指定的目录不存在或不是一个目录则返回 System.out.println("失败!找不到指定目录:" + dir_Path); return; } // 列出指定目录下的所有符合过滤器条件的文件(包括子目录) File[] fileArray = dir_File.listFiles(filter); for(int i = 0; i < fileArray.length; i++ ){ if(fileArray[i].isFile()){ System.out.println(fileArray[i].getAbsolutePath() + " 是文件!"); }else if(fileArray[i].isDirectory()){ System.out.println(fileArray[i].getAbsolutePath() +" 是目录!"); FileDemo_02.getFilesByFilter(filter,fileArray[i].getAbsolutePath()); } } } public static void main(String[] args){ String dir = "E:\\baidu player"; System.out.println((dir + "目录下的内容")); FileDemo_02.getAllFiles(dir); System.out.println(); System.out.println("符合过滤器条件的文件如下:"); //新建一个文件名过滤器。参数为".txt" FilenameFilter myFilenameFilter = new FileDemo_02.MyFilenameFilter(".txt"); FileDemo_02.getFilesByFilter(myFilenameFilter,dir); } }
E:\baidu player目录下的内容
E:\baidu player\A.txt E:\baidu player\keytoolcmd.txt
E:\baidu player\Write.txt E:\baidu player\百度网盘
E:\baidu player\百度网盘\desktop.ini E:\baidu player\百度网盘\我的文档
E:\baidu player\百度网盘\我的照片
E:\baidu player\百度网盘\我的视频
E:\baidu player\百度网盘\我的音乐
E:\baidu player\目录说明.txt
符合过滤器条件的文件如下:
E:\baidu player\A.txt 是文件!
E:\baidu player\keytoolcmd.txt 是目录!
E:\baidu player\Write.txt 是文件!
E:\baidu player\百度网盘 是目录!
E:\baidu player\百度网盘\我的文档 是目录!
E:\baidu player\百度网盘\我的照片 是目录!
E:\baidu player\百度网盘\我的视频 是目录!
E:\baidu player\百度网盘\我的音乐 是目录!
E:\baidu player\目录说明.txt 是文件!
/**
* 实例118 在指定的目录下创建单个文件
*
*/
public class FileDemo_03 { // 此方法的主要作用是判断创建文件是否成功,如果成功则返回true否则返回false public static boolean createFile(String destFileName){ File file = new File(destFileName); if(file.exists()){ System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!"); return false; // 如果存在,则不需创建则返回fasle } if(destFileName.endsWith(File.separator)){ System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!"); return false;// 因为不是文件所以不可能创建成功,则返回false } // 判断目标文件所在的目录是否存在 if(!file.getParentFile().exists()){ // 如果目标文件所在的文件夹不存在,则创建父文件夹 System.out.println("创建" + file.getName() +"所在目录不存在,正在创建!" ); if(!file.getParentFile().mkdirs()){ // 判断父文件夹是否存在,如果存在则表示创建成功否则不成功 System.out.println("创建目标文件所在的目录失败!"); return false; } } //创建目标文件 try{ if (file.createNewFile()) {// 调用createNewFile方法,判断创建指定文件是否成功 System.out.println("创建单个文件" + destFileName + "成功"); return true; }else{ System.out.println("创建单个文件" + destFileName + "失败"); return false; } }catch(IOException e){ e.printStackTrace(); System.out.println("创建文件" + destFileName + "失败!" + e.getMessage()); return false; } } public static void main(String[] args){ //创建目录 String dirName = "D:/temp/aa"; //创建文件 String fileName = dirName + "/bb/ccFile.txt"; FileDemo_03.createFile(fileName); } }
输出:
创建ccFile.txt所在目录不存在,正在创建!
创建单个文件D:/temp/aa/bb/ccFile.txt成功