笔记20 file类

package test0911;

import java.io.File;
import java.io.IOException;
import java.util.Date;

/*
 * 		1、File类
 * 			1) 它来源于java.io.File;
 * 			2) 它用来:管理计算机资源,主要是管理文件夹和文件及磁盘空间。
 * 			3) 它提供一个管理资源的相关方法。
 * 
 * 		2、查看当前电脑的磁盘使用情况。
 * 			listRoots()是java6.0及以上版本新增的一个方法。
 * 			此方法用来列出计算机中所有根目录并将它们组成一个File类的对象数组。
 * 
 * 			根目录、子目录、路径、绝对路径、相对路径。
 * 			1Byte == 8 bit
 * 			1KB == 1024B
 * 			1MB == 1024KB
 * 			1GB == 1024MB
 * 			1TB == 1024GB
 * 
 * 		3、编写一个类似 DIR 命令的功能的程序.
 * 			查看某个指定文件夹下的所有信息(子文件夹和文件名)。
 * 			list()
 * 
 * 		4、编写一个类似 md 命令的功能的程序。
 * 		 			
 * 		案例: 在当前用户的工作目录下创建一系列目录,之后,再创建一个文件。
 * 				父目录  子目录 的关系
 * 
 * 		思考: 
 * 			在指定磁盘的指定目录下,创建一个指定的目录。
 * 
 * 			mkdir() 方法  用来创建一个目录。
 * 			mkdirs() 方法  用来创建一系列目录(父目录/子目录)
 */
public class FileTest0 {
	public static void main(String[] args) {
		File[] rts = File.listRoots();
		
		System.out.println("磁盘\t已用空间\t可用空间\t总空间");
		
		for( File tem : rts ){
			System.out.print( tem );
		
			long dfs = tem.getFreeSpace() / 1024 / 1024 / 1024 ; //获取磁盘的可用空间。
			long dts = tem.getTotalSpace() / 1024 / 1024 / 1024 ;//获取磁盘的总空间。
		
			long uts = dts - dfs;
		
			System.out.println("\t" + uts + "GB \t" + dfs + "GB \t" + dts + "GB ");
		}
		
		a(args);

		b(args);
	}
	public static void a(String[] args) {
		String path = "d:/";
		System.out.println("以下是: " + path + " 目录下的所有信息:");
		
		//构造一个File类的对象用来管理path路径
		File  f1 = new File( path );
		
		//list()方法的作用: 将指定目录下的所有文件名和子文件夹的名称收集起来组成一个String类型的数组。
		String[]  fileDirNames = f1.list();
		
		int dirCounter = 0; //计算目录的数量
		int fileCounter = 0; //计算文件的数量
		long totalLength = 0; //文件的总长度
		
		for( String  tem :  fileDirNames ){

			//创建一个File对象来管理 tem 对应的文件或子文件夹。
			File f2 = new File( path + tem );
			
			long t1 = f2.lastModified();
			Date d1 = new Date( t1 );
			System.out.printf("%tF %<tT" , d1 );
			
			if( f2.isDirectory()) {
				dirCounter++;
				System.out.print("\t <DIR> \t");
			}else{
				fileCounter++;
				long len = f2.length();
				totalLength += len;
				System.out.print("\t\t" + len );
			}
			
			System.out.println("\t"+ tem );
		}
		
		System.out.println("---------------------------------------------");
		System.out.println("\t " + fileCounter + "个文件\t" + totalLength + " 个字节数。");
		System.out.println("\t " + dirCounter + "个目录。");
	}
	
	
	public static void b(String[] args){
		String userWorkDir = System.getProperty("user.dir");
		
		System.out.println("用户当前的工作目录是: " + userWorkDir );
		
		//定义要创建的一系列目录
		String path = "目录1" + "/"+ "目录2";
		
		//定义要创建的文件
		String fileName = "MyFile.txt";
		
		//创建一个File类的对象来管理 path 和 fileName 
		File  f1 = new File( path , fileName );
		
		if( f1.exists() ){
			System.out.println( fileName + ",它存在且其绝对路径是: " + f1.getAbsolutePath() );
			System.out.println( fileName + ",它存在且其大小是: " + f1.length() + " 个字节。");
		}else{
			
			f1.getParentFile().mkdirs(); //将一系列父目录同时创建
			System.out.println("在 " + userWorkDir + " 目录下创建了: " + path + "  一系列父目录。");
			
			try {
				f1.createNewFile();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} //创建文件。
			System.out.println("在 " + path + "  下面创建了一个 " + fileName + " 文件。");
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值