`
Luob.
  • 浏览: 1590482 次
  • 来自: 上海
社区版块
存档分类
最新评论

java之20天 File对象(一)

    博客分类:
  • Java
阅读更多
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
4
分享到:
评论

相关推荐

    20天学通JAVA技术高清版

    "20天学通JAVA技术高清版"显然是一份旨在帮助初学者在短时间内掌握Java核心技术的教程资源。这份教程可能包含了从基础语法到高级特性的全面讲解,通过高清视频或文档形式,使学习过程更为直观易懂。 1. **Java基础...

    21天java学习PPT

    在“21天Java学习PPT”中,你将踏上一段深入学习Java编程语言的旅程。这个资源旨在帮助初学者在短短21天内建立起坚实的Java基础,同时也适合那些希望巩固或更新Java知识的开发者。PPT的形式使得学习更加直观和易懂,...

    达内java基础培训课程

    这份资料集合了作者在达内参加前20天学习的精华内容,旨在为那些考虑参加达内Java培训或者对Java编程感兴趣的初学者提供一份宝贵的参考。 1. **Java语言概述** Java是一种跨平台、面向对象的编程语言,由Sun ...

    Java电子教案(21天学通JAVA)

    1. **Java概述**:Java是一种面向对象的、跨平台的编程语言,由Sun Microsystems(现为Oracle公司)于1995年发布。它的设计目标是“写一次,到处运行”,这得益于Java虚拟机(JVM)的支持。 2. **环境搭建**:学习...

    java面试题目20页可已打印题目含解析和答案

    `Calendar`类用于处理日期和时间,当设置的日期超出了月份的天数,如2月的32日,系统会自动转到下个月的第一天,所以输出应该是3月1日,答案是B。 2. **文件流操作**: `BufferedOutputStream`是Java I/O流的一...

    Java核心课件

    Java核心课件是一套全面而深入的教程,旨在帮助学习者在短短20天内熟练掌握Java编程语言的核心概念和技术。这个课程以通俗易懂的方式呈现,使得即使是没有编程背景的初学者也能轻松上手。Java是一种广泛使用的面向...

    Java企业级开发综合技能知识总结

    30. **如何获取某个日期是当月的最后一天?** - 使用`Calendar`类计算月份的最大天数。 31. **如何格式化日期?** - 使用`SimpleDateFormat`类。 32. **编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1...

    21天学通Java-由浅入深

    第一篇 基础篇 第1章 Java简介(精彩视频:33分钟) 21 1.1 Java的平台简介 21 1.2 安装工具包 22 1.2.1 下载JDK 22 1.2.2 安装JDK 24 1.2.3 查看与设置环境变量 25 1.2.4 JDK常用命令 27 1.2.5 Java各个目录含义 28...

    JAVA面试题最全集,JAVA面试题最全集

    - **获取某日期是否为当月最后一天**:使用`MonthDay`类。 ```java boolean isLastDayOfMonth = MonthDay.from(now).equals(MonthDay.of(now.getMonth(), now.getMonth().length(now.isLeapYear()))); ``` - **...

    Java 2编程21天自学通(2)

    1. **面向对象编程基础**:Java是一种典型的面向对象编程语言,它强调对象的封装、继承和多态。理解类、对象、接口、抽象类以及构造器等概念是学习Java的基础。 2. **数据类型和变量**:Java有两类数据类型——基本...

    JAVA面试题目

    垃圾回收机制是Java内存管理的一部分,用于自动释放不再使用的对象所占用的内存。 4. 在JAVA中,如何跳出当前的多重嵌套循环? 可以使用标签(label)和break语句,首先给最外层循环一个标签,然后在break后面跟上...

    java毕向东源代码16-25天

    这25天的学习内容是Java开发者的进阶之路,通过逐日递增的难度,帮助学员巩固基础并提升技能。 【描述】"java毕向东源代码16-25天,共25天" 表明这是一个持续25天的Java学习计划,强调了实践与理论的结合。这期间,...

    整合了所有java经典面试题

    - **垃圾回收机制**: Java自动管理内存的一种机制,主要功能是在程序运行过程中自动检测不再使用的对象,并释放其占用的内存空间。常用算法有标记-清除算法、复制算法、标记-整理算法等。 5. **在JAVA中,如何跳出...

    华为java面试题

    #### 一、Java面向对象基础 1. **super()与this()的区别** - `super()`用于调用父类的构造方法或父类中的成员方法。 - `this()`用于调用本类中的其他构造方法。 2. **作用域public, protected, private,以及不写...

    Java 2实用教程(第三版)实验指导与习题解答

    //在Java Applet中绘制一行文字:“这是一个Java Applet 程序” g.setColor(Color.red); g.setFont(new Font("宋体",Font.BOLD,36)); g.drawString("我改变了字体",20,50);//在Java Applet中绘制一行文字:“我...

    JAVA面试题全集

    - 获取某个日期是否是当月的最后一天:可以使用 `java.time.LocalDate` 类的方法。 - 格式化日期:使用 `java.text.SimpleDateFormat` 或 `java.time.format.DateTimeFormatter`。 5. **数组和集合** - 数组是...

    java初学者完整代码+注释2

    Java编程语言是软件开发领域广泛使用的编程语言,尤其适合初学者入门。这个“java初学者完整代码+注释2”压缩包提供了21课的学习内容,涵盖了Java的基础知识,包括语法、数据类型、...祝你在Java学习之旅中取得成功!

    Java面试题以及答案

    可以使用`java.time`包中的`MonthDay`类来确定某个月的最后一天。 #### 29. 如何格式化日期? 使用`SimpleDateFormat`类可以方便地格式化日期。 #### 30. 编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-...

Global site tag (gtag.js) - Google Analytics