现在的位置: 首页 > 综合 > 正文

io例子—实例116 显示文件的基本信息 , 实例117 显示目录的基本信息,实例118 在指定的目录下创建单个文件

2013年08月12日 ⁄ 综合 ⁄ 共 4823字 ⁄ 字号 评论关闭

/**
 * 实例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成功

抱歉!评论已关闭.