码迷,mamicode.com
首页 > 编程语言 > 详细

Java第三阶段学习(一、IO流------File类)

时间:2018-06-20 21:34:29      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:阶段   比较   zip   否则   absolute   err   delete   except   txt   

一、IO概述:

把内存中的数据存入到硬盘(持久化设备)中叫做:输出(写)Output操作。JAVA软件往电脑硬盘上走叫输出。

把硬盘中的数据读取到到内存里叫做:输入(读)Input操作。电脑硬盘上往JAVA软件里走叫输入。

以JAVA软件为参照物。

这种输入输出的动作叫做IO操作

二、File类(文件类)

2.1定义:File是文件和目录(文件夹)路径名的抽象表现形式,即:JAVA把文件和目录都封装为File对象

2.2构造函数:

 

       //File构造方法无法判定你写的这个文件是否真的存在
        //第一种方法,直接填写路径
        File f=new File("e:\\java\\dandan.java");//写路径时写两道杠,用来转译‘\‘ 符号
        System.out.println(f);
        //第二种方法,将路径跟文件名分开写作字符串,比较灵活
        String parent="e:\\java";
        String child="dandan.java";
        File f2=new File(parent,child);
        System.out.println(f2);
        //第三种方法,将父类的路径变为文件对象,子类还是字符串  最为灵活
        File p=new File("d:\\java");
        String c="b.java";
        File f3=new File(p,c);
        System.out.println(f3);

 2.3File类相关信息的获取方法:

技术分享图片

            //绝对路径
        File f=new File("e:\\study\\codetool\\jdk\\src.zip");
        //获取文件或文件夹的名称    
        System.out.println(f.getName());
        //getPath相当于toString方法得到的值
        System.out.println(f.getPath());
        //得到文件的字节数(Long类型的值)
        System.out.println(f.length());  
                  //获得绝对路径:getAbsolutePath()
        //当你写相对路径的时候,会获得工程根路径+相对路径     但是不会判断是否正确
        File f=new File("src");
        System.out.println(f.getAbsolutePath());

2.4 文件和文件夹的创建删除方法

 技术分享图片

                //创建文件   createNewFile()
        File f=new File("e:\\java\\xxx.java");
        f.createNewFile();
        //创建文件夹   mkdir
        File f=new File("e:\\java\\aaa\\bbb\\ccc");
        //f.mkdir();
        //创建多级文件夹 .mkdirs()  尽量用这个方法,比上面只能创建一个的好用
        f.mkdirs();    
            //删除文件夹
        File f=new File("e:\\java\\新建文件夹");
        //多重路径下的需要先删底层的,一步步删上来
        //f.delete();
        //注意:delete() 方法删除的文件或文件夹是不走回收站的,直接从硬盘删除
        //删除需谨慎,一般不用这个方法,因为找不回来    
                //.exists() 可以验证路径及文件是否存在,并返回一个true或false
                File f=new File("e:\\java\\nishizhuma.txt");
        System.out.println(f.exists());
        // .isDirectory()       判断文件对象是否是文件夹
        System.out.println(f.isDirectory());
        //.isFile()     判断文件对象是否是文件
        System.out.println(f.isFile());          

2.5 listFiles()方法:

 用来获取一个目录中所有的文件或文件夹

 技术分享图片

        File f=new File("e:\\java");
        //获取该路径下的所有文件和文件夹的字符串    
        String[] filearr=f.list();
        for(String s:filearr){
            System.out.println(s);  //打印的是文件名
        }
        //将所有文件存入一个数组中
        File[] file=f.listFiles();
        for(File f1:file){
            System.out.println(f1); //打印的是路径+文件名
        }

注意:在获取指定目录下的文件或者文件夹时必须满足下面两个条件

1,指定的目录必须是存在的,

2,指定的必须是目录。否则容易引发返回数组为null,出现NullPointerException

 2.6 文件过滤器:

 File类中重载的listFiles方法,并且接受指定的过滤器。

 技术分享图片

技术分享图片

  过滤器的使用:

public static void main(String[] args) {
        File f=new File("e:\\java");
        getFile(f);

    }
public static void getFile(File f){
        //通过文件过滤器,将返回为true的文件存入数组中
        File[] file=f.listFiles(new MyFilter());     //new  MyFilter()  文件过滤器
        for(File f1:file){
            System.out.println(f1);
        }
    }

 

 自定义一个过滤器类:只打印名称以.java结尾的文件

package com.oracle.Demo01;

import java.io.File;
import java.io.FileFilter;

public class MyFileter implements FileFilter {

    @Override
    public boolean accept(File pathname) {
        if(pathname.isDirectory()){
            return true;
        }
        //将文件名称全部转小写   因为在windows系统中,文件名称是不区分大小写,但是在java文件中是区分的,所以需要先转换为小写
        return pathname.getName().toLowerCase().endsWith(".java");   
    }
    
}

 

Java第三阶段学习(一、IO流------File类)

标签:阶段   比较   zip   否则   absolute   err   delete   except   txt   

原文地址:https://www.cnblogs.com/0328dongbin/p/9203071.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!