java之20天 File对象(一)

1 篇文章 0 订阅
1 篇文章 0 订阅
File类 的使用


import java.io.File;
import java.io.IOException;

/**
 * File类 
 * (弥补了IO流的不足,不能对文件夹进行操作)
 * 1)用来将文件或者文件夹 封装成对象
 * 2)方便对文件或者文件夹进行操作
 * 3)File对象可以作为参数传递给流的构造函数
 * 4)了解File类中常用的方法.
 * 
 * File 类的常见方法
 * 1.创建
 * 		boolean createNewFile():在指定的位置创建文件,如果该文件已经存在,则不创建,返回false
 *     							和 输出流不一样,输出流对象一建立就创建文件,而且会覆盖已存在的文件.
 *      //程序中需要用到临时文件 
 *      File tf=createTempFile("临时文件","tmp");
 *      File tf=createTempFile("临时文件","tmp","c:\\system32\\");
 *     
 * 2.删除
 *    boolean  delete()  : 删除失败返回 false
 *    void     deleteOnExit():  程序退出的时候 ,删除指定文件
 *    
 * 3.判断
 *     boolean canExecute():如果文件存在返回true 表示可以操作 ,不存在返回false 表示不能执行
 *     boolean canRead(); 文件是否可读. 
 *     boolean canWrite(): 文件是否可写
 *     int compartTo(): 按文件名比较
 *     boolean isAbsolute():是否是绝对路径
 *     boolean isHidden(); 是否是隐藏文件
 *     
 *     boolean exists():文件是否存在
 *     boolean isDirectory():是否是目录 (必须要判断是否存在)
 *     boolean isFile():是否是文件 (必须要判断是否存在)
 *     
 * 4.获取信息
 *    String getName();获取文件名
 *    String getPath(): 获取路径 
 *    String getParent(): 获取父目录  如果获取的的是相对路径返回的是null
 *    String getAbsolutePath(): 获取绝对路径
 *    File   getAbsoluteFile(): 获取绝对路劲文件对象
 *    long   lastModified(): 获取文件的组后修改时间
 *    long   lenth(): 获取文件的长度.
 *    String getCanonicalPath();获取规范的文件路径
 *    boolean renameTo():修改名称
 *    
 *    File[]   listRoots():  获取当前系统可用 盘符
 *    String[] list():表示的目录中的文件和目录。(包含隐藏文件 和 目录)
 *    
 *
 */
public class FileDemo {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//consMethod();
		//method_1();
		//method_2();
		//method_3();
		//method_4();
		//method_5();
		method_6();
	}
	//获取当前盘符下的文件和目录 (包含隐藏文件 和 目录)
	public static void method_6(){
		File f=new File("cc\\");
		String[] names=f.list();  //调用 list方法的file对象必须是封装了一个目录,该目录必须存在
		for (String string : names) {
			System.out.println(string); 
		}
	}
	
	//获取盘符
	public static void method_5(){
		File[] files=File.listRoots();
		for (File file : files) {
			System.out.println(file);  //
			System.out.println(file.length());  //返回当前盘符的大小
		}
		
		/*返回:
		 	C:\
			D:\
			E:\
			F:\
		*/
		
	}
	//修改文件名
	public static void method_4(){
		File f1=new File("c:\\MyTools.java");
		File f2=new File("c:\\Tools.java");
		sop("rename:"+f1.renameTo(f2));  //将 MyTools.java --> Tools.java
		
		File f3=new File("D:\\Tools.java");
		sop("rename And like move:"+f1.renameTo(f3));  //发现C:\\MyTools.java 文件 移动到 D:\\Tools.java
		sop("rename And like move:"+f3.renameTo(f1));  //发现 又将  D:\\Tools.java 移动到了C:\\MyTools.java 下面了
	}
	
	//获取文件信息
	public static void method_3() throws IOException{
		File f=new File("bb\\aa\\a.txt");
		
		
		sop("path:"+f.getPath());  //获取封装的路径
		sop("Canonicalpath:"+f.getCanonicalPath());  //获取封装的路径
		sop("absPath:"+f.getAbsolutePath());  //获取文件的绝对路径
		sop("parentPath:"+f.getParent());  //获取文件的绝对路径中的父母.如果获取的是相对路径,返回null
											//如果相对路径中有上一层目录,那么该目录就是返回结果
		sop("modified:"+f.lastModified()); //最后的修改时间
		
		sop("length:"+f.length());
	}
	
	
	//文件判断 
	public static void method_2() throws IOException{
		File f=new File("isFile.txt");
		
		//记住判断文件兑现是否是文件或者目录的时候,必须要先判断文件对象封装的内容是否存在.
		//通过exists 判断
		sop("dir:"+f.isDirectory());  //false
		sop("File:"+f.isFile()); //false 
		
		/*f.createNewFile();
		sop("dir:"+f.isDirectory());  //false
		sop("File:"+f.isFile()); //false 
        */		
		
		//是否是绝对路径
		sop("isAbsolute:"+f.isAbsolute());
		sop("isHidden:"+f.isHidden());
		
		//谁说上面的.txt 是文件 也可能是目录
		f.mkdir();  
		sop("dir:"+f.isDirectory());  //false
		sop("File:"+f.isFile()); //false
		sop("isHidden:"+f.isHidden());
	}
	
	//File常用方法
	public static void method_1() throws IOException{
		
		//创建文件夹
		File dir=new File("abc");
		sop(dir.mkdir());  //true
		
		//mkdir只能创建一级目录
		File dir1=new File("bb\\kk");
		sop(dir1.mkdir());  //false
		
		//创建多级目录
		File dirs=new File("cc\\kk\\jj\\mm");
		sop(dirs.mkdirs());  //true
		
		//创建
		File f=new File("file.txt");
		sop("create:"+f.createNewFile());
		
		//是否可执行
		sop("execute:"+f.canExecute());
		
		//是否可以读
		sop("read:"+f.canRead());
		
		//是否可写
		sop("write:"+f.canWrite());
		 
		//文件名比较
		sop("compare:"+f.compareTo(new File("ab.txt")));
		
		//文件是否存在
		sop("exists:"+f.exists());
		
		//删除
	   // sop("delete:"+f.delete());
		
	}
	
	//构造方法演示
	public static void consMethod(){
		//将a.txt封装成file对象,可以将已有的和 未出现的文件 或者文件夹 封装成  file对象
		File f1=new File("a.txt");   //相对路径
		
		//可以将 文件名 作为参数进传递进来
		File f2=new File("c:\\abc","b.txt");
		
		
		File d=new File("c:\\abc");
		File f3=new File(d,"c.txt");
		
		sop("f1:"+f1);
		sop("f2:"+f2);
		sop("f3:"+f3);
		
		//发现这个里面的分隔符 跨平台
		File f4=new File("c:\\a\\b\\c\\a.txt");
		//下面的跨平台
		f4=new File("c:"+File.separator+"a"+File.separator+"b"+File.separator+"c"+File.separator+"a.txt");
		
	}

	public static void sop(Object obj){
		System.out.println(obj);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值