一.File 类(java.io)

概述:Java中使用File类来表示文件或者文件夹对象!
     抽象路径名:描述文件或文件夹时,使用的路径符号,就是一个对象的字符串表示形式,如"c:\\";
     绝对路径:绝对位置开始的路径;
     相对路径:相对位置开始的路径;

构造方法:
     File(String pathname)
     File(String parent, String child)
     File(File parent, String child)

常用方法:

1.创建与删除的方法

public boolean createNewFile(){}:当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件.
                                 报:IOException;

public boolean mkdir(){}:创建此抽象路径名指定的目录.

public boolean mkdirs(){}:创建此抽象路径名指定的目录,包括所有必需但不存在的父目录.

public boolean delete(){}:删除此抽象路径名表示的文件或目录。
                             注意1:删除的内容不进回收站,彻底删除!
                             注意2:如果File对象是文件夹,且文件夹的内容不为空,会删除失败!

2.其它常用方法

public boolean exists(){}:测试此抽象路径名表示的文件或目录是否在硬盘上存在。

public boolean isDirectory(){}:测试此抽象路径名表示的文件是否是一个目录.必须先保证exists方法得到true,才有效,否则,永远得false;

public boolean isFile(){}:测试此抽象路径名表示的文件是否是一个标准文件.必须先保证exists方法得到true,才有效,否则,永远得false

public String getAbsolutePath(){}:返回此抽象路径名的绝对路径名字符串.--(得到是字符串!!!)

public String getPath(){}:将此抽象路径名转换为一个路径名字符串。(得到的值就是创建对象的时候传递的参数).--(得到是字符串!!!)

public String toString(){}:返回此抽象路径名的路径名字符串.等同于getPath方法.--(得到是字符串!!!)

public String getName(){}:返回由此抽象路径名表示的文件或目录的名称.----(得到是字符串!!!)

public String getParent(){}:返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null----(得到是字符串!!!)

public File getParentFile(){}:返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null

public long    length(){}:返回由此抽象路径名表示的文件的长度。不能使用文件夹对象调用,否则得到的数据无意义

public String[] list(){}:列出指定文件夹下全部内容,仅列出名称

public File[] listFiles(){}:列出指定目录下的全部内容,会列出路径

public boolean renameTo(File dest){}:为已有的文件重新命名.如果参数dest表示的文件(A)的路径与调用renameTo方法的那个对象(B),
                                     在同一个文件夹下,是重命名的效果,如果不在同一个文件夹下,是剪切的效果;
                                     报:NullPointerException;

public File[] listFiles(FileFilter filter){}:通过过滤器获取对象数组;

3.常量

public static final String pathSeparator:路径分隔符,windows中是":"

public static final String separator:路径分隔符,windows中是"\";

代码演示:

  1 /*相对工程所在的目录创建一个Demo文件夹,里面包含两个文件夹Demo1和Demo2;
2 Demo1文件夹里包含11.txt和11.java文件;
3 Demo2文件夹里包含21.txt和21.java文件;
4 遍历取出Demo文件夹里所有的java文件,并输出各java文件的绝对路径和父目录路径名
5 */
6
7 import java.io.File;
8 import java.io.IOException;
9 public class DemoFile{
10 public static void main(String[] args) throws IOException{
11 //相对工程所在的目录创建一个Demo文件夹,里面包含两个文件夹Demo1和Demo2
12 File f1 = new File("Demo\\Demo1");
13 File f2 = new File("Demo\\Demo2");
14 f1.mkdirs();
15 f2.mkdirs();
16 //Demo1文件夹里包含11.txt和11.java文件
17 File f3 = new File(f1,"11.txt");
18 File f4 = new File(f1,"11.java");
19 f3.createNewFile();
20 f4.createNewFile();
21 //Demo2文件夹里包含21.txt和21.java文件
22 File f5 = new File(f2,"21.txt");
23 File f6 = new File(f2,"21.java");
24 f5.createNewFile();
25 f6.createNewFile();
26 //遍历取出Demo文件夹里所有的java文件,并输出各java文件的绝对路径和父目录路径名
27 printfil(f1.getParentFile());
28 }
29
30 public static void printfil(File f){
31 //安全校验
32 if(f.exists() && f != null && f.isDirectory()){
33 //列出目录下所有文件内容
34 File[] file = f.listFiles();
35 //遍历,并匹配以java结尾的文件
36 for(File f1 : file){
37 //判断是不是标准文件
38 if(f1.isFile()){
39 if(f1.getName().endsWith(".java")){
40 System.out.println("java文件绝对路径:"+f1.getAbsolutePath());
41 System.out.println("java文件父路径:"+f1.getParent());
42 }else{
43 System.out.println("忽略的文件为:"+f1.getName());
44 }
45 //如果不是标准文件,则继续调用本方法
46 }else{
47 printfil(f1);
48 }
49 }
50 }
51 }
52 }
53

二.关于System.out.print(Object obj);的理解

1.System调用其类属性out,而out又是PrintStream类型,所以out可以调用类PrintStream的方法print.

2.调用print()打印Object时,会判断Object是否为空,如果为空,输出null;如果非空,调用Object的toString().

3.如果toString()方法被覆写,那就调用覆写后的;如果没有被覆写,就用自身的,自身的方法是用反射获取类名称,
     然后拼接一个"@",再调用hashCode()方法,并将其返回值变为16进制字符串.

4.如果hashCode()被覆写了,就调用覆写后的,输出后为哈希散列特征码;如果没有被覆写,就用自身的,
     这个自带的hashCode()实现的逻辑是本地代码,JDK源码并末提供.输出为地址值.

附:

public void print(Object obj)--java.io.PrintStream
     The string produced by the String.valueOf(Object) method is translated into bytes

public String toString()--- java.lang.String
     getClass().getName() + '@' + Integer.toHexString(hashCode())

File类--System.out.print(Object obj)的理解的更多相关文章

  1. ArrayList集合--关于System.out.print(Object obj);的理解

    1.ArrayList集合中常用的方法 ArrayList<Student> stuArrayList = new ArrayList<>(); //定义一个集合对象 stuA ...

  2. 09、IO流—File类与IO流

    目录 一.File类 基本认识 实用方法 获取功能 重命名功能(包含剪切) 判断功能 创建.删除文件 实际小案例 二.IO流 1.认识IO流 2.IO流基类介绍 字节流基类介绍 字符流基类介绍 三.节 ...

  3. java基础知识回顾之javaIO类--File类

    File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读, ...

  4. File类中的一些属性 添加删除文件夹

    import java.io.File; import java.io.IOException; public class FileD { public static void main(String ...

  5. Java学习:File类

    Java学习:File类 File类的概述 重点:记住这三个单词 绝对路径和相对路径 File类的构造方法 File类判断功能的方法 File类创建删除功能的方法 File类获取(文件夹)目录和文件夹 ...

  6. java中File类的使用

    public class FileLei {    public static void main(String[] args) throws IOException {        //..表示上 ...

  7. 创建File类 及 this.getClass().getResource()方法 用到的文件路径的问题

    1 package test; 2 3 import java.io.*; 4 import java.util.Scanner; 5 6 public class TestResource { 7 ...

  8. Junit 注解 类加载器 .动态代理 jdbc 连接池 DButils 事务 Arraylist Linklist hashset 异常 哈希表的数据结构,存储过程 Map Object String Stringbufere File类 文件过滤器_原理分析 flush方法和close方法 序列号冲突问题

    Junit 注解 3).其它注意事项: 1).@Test运行的方法,不能有形参: 2).@Test运行的方法,不能有返回值: 3).@Test运行的方法,不能是静态方法: 4).在一个类中,可以同时定 ...

  9. .NET基础 (11)类型的基类System.Object

    类型的基类System.Object1 是否存在不继承自System.Object类型的类2 在System.Object中定义的三个比较方法有何异同3 如何重写GetHashCode方法 类型的基类 ...

随机推荐

  1. 微信公众平台:扫一扫demo

    ylbtech-微信公众平台:扫一扫demo 1.返回顶部 1.Web.config <appSettings> <add key="appid" value=& ...

  2. i2c-tools的使用方法及举例

    i2c-tools的使用方法 最近在调试ADV7401,调试的过程难免要反复修改寄存器,然后看结果现象.传统的做法是修改驱动代码寄存器值->编译->下载->运行->看结果,这一 ...

  3. 浅析C语言中strtol()函数与strtoul()函数的用法

    转自:http://www.jb51.net/article/71463.htm C语言strtol()函数:将字符串转换成long(长整型数) 头文件: ? 1 #include <stdli ...

  4. cookie,sessionStorage 和 localStorage

    1.三者之间的区别 cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密). cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览 ...

  5. java&nbsp;原始类与封装类&nbsp;的区别

    int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Integer是java为int提供的封装类.int的默认值为0,而Integer的默认值为null,即Integer可 ...

  6. c程序十六进制字符串转换为整数与反转

    字符串转整数使用sscanf ; char *buf = "1d5ce"; sscanf (buf, "%x", &value); printf (&q ...

  7. Django 的 路由系统

    Django 的路由系统 URL 配置(URLconf)就像Django 锁支撑网站的目录. 它的本质就是URL 与要为该URL 调用的视图函数之间的映射表. 你就是以这种方式告诉Django, 对于 ...

  8. 微软 Remote App

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://wangchunhai.blog.51cto.com/225186/201073 ...

  9. codevs1245 最小的N个和

    1245 最小的N个和 题目描述 Description 有两个长度为 N 的序列 A 和 B,在 A 和 B 中各任取一个数可以得到 N^2 个和,求这N^2 个和中最小的 N个.

  10. js实现考试随机选题

    考试的时候经常用到,发在这里记录一下 基本信息包括: 学号.姓名.题号.题目名称 实现原理:给每一个题目添加一个编号,JS生成随机数,遍历每一个学生,把题目根据生成的随机数作为题目编号放入学生信息中 ...