java复习(2)之File类

来源:互联网 发布:二战意大利知乎 编辑:程序博客网 时间:2024/06/05 02:27

IO(Input Output);
IO技术主要的作用是用于解决设备与设备之间的数据传输问题。
比如:硬盘中的数据读取到内存,也可以内存的数据到硬盘上,把键盘上的数据读到内存中。

数据保存到硬盘上,改数据就可以做到永久性的保存。
数据是以文件的形式保存到硬盘上的。
sun使用了一个File类描述了文件或者文件夹的。
File类可以描述一个文件或者一个文件夹。

File类的构造方法:

File(String pathname)  指定文件或者文件夹的路径创建一个File文件。File(File parent, String child)   根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。 File(String parent, String child) public class demo2 {public static void main(String[] args) {    File file = new File("F:"+File.separator+"a.txt");    File file1 = new File("F:/a.txt");    File parentFile = new File("F:\\");    File file2 = new File(parentFile,"a.txt");    System.out.println("存在吗?"+file.exists());    //判断该文件存不存在,存在返回true,否则返回false。}

}

目录分隔符:
在windows机器上的目录分隔符是\,在linux机器上的目录分隔符是/。
注意:
在windows上面/和\都可以使用作为目录分隔符。而且,如果写/的时候只需要写一个即可。

路径问题:

绝对路径:该文件在硬盘上的完整路径,绝对路径一般都是以盘符开头的。相对路径:相对路径就是资源文件相对于当前程序所在的路径。.   当前路径..  上一级路径

注意:
如果程序当前所在的路径与资源文件不是在同一个盘下面,是没法写相对路径的。

常见方法:

创建:    1.createNewFile() 在指定的位置创建一个空文件,成功就返回true,如果已存在就不创建然后返回false。    2.mkdir()         在指定位置创建目录,这只会创建最后一级目录,如果上级目录不存在则抛异常。    3.mkdirs()        在指定位置创建目录,这会创建路径中所有不存在的目录。    4.renameTo(File dest)                      重命名文件或文件夹也可以操作非空的文件夹,文件不同时相当于文件的剪切,剪切时候不能操作非空的文件夹。删除:    1.delete()        删除文件或空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false。    2.deleteOnExit()  在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除。                        (jvm退出的时候删除文件。一般用于删除临时文件。)判断:    1.exists()        文件或文件夹是否存在    2.isFile()        是否是一个文件,如果不存在,则始终为false    3.isDirectory()   是否是一个目录,如果不存在,则始终为false    4.isHidden()      是否是一个隐藏的文件或者是否是隐藏的目录。    5.isAbsolite()    测试此抽象路径名是否为绝对路径名。获取:    1.getName()       获取文件或文件夹的名称,不包含上级路径。    2.getPath()       返回绝对路径,可以是相对路径,但是路径要指定。    3.getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系。    4.length()        获取文件的大小(字节数),如果文件不存在则返回0L,如果是文件夹也返回0L。    5.getParent()     返回此抽象路径名父目录的路径名字符串;如果此路径名没有 指定父目录,则返回null    6.lastModified()  获取最后一次被修改的时间。文件夹相关:    7.staic File[] listRoots() 列出所有的根目录(windows中就是所有的盘符)    8.list()          返回目录下的文件或者目录名,包含隐藏文件,对于文件这样操作会返回null。    9.listFiles()     返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。    10.list(FilenameFileter filter)                      返回指定当前目录中符合过滤条件的子文件或子目录,对于文件这样操作会返回null。    11.listFiles(FilenameFilter filter)                      返回指定当前目录中符合过过滤条件的子文件或子目录,对于文件这样操作会返回null。

需求1:
指定一个文件夹,然后该文件夹下面所有java文件。
需求2:
指定一个文件夹,然后列出文件夹下面的所有子文件与文件夹,但是格式要如下:

文件:

    文件名1    文件名2    文件名3    。。。

文件夹:

    文件夹名1    文件夹名2    文件夹名3    。。。

需求一:

package nyist.net;import java.io.File;public class demo4 {public static void main(String[] args) {    File dir = new File("E:\\开发工具\\work_space\\Demo1\\src\\nyist\\net");    listName(dir);}    public static void listName(File dir){        File[] files = dir.listFiles();        for(File fileItem:files){            String fileName = fileItem.getName();            if(fileName.matches(".+\\.java")&&fileItem.isFile()){                System.out.println(fileName);               }        }    }}

需求二:

    package nyist.net;    import java.io.File;    public class demo3 {    public static void main(String[] args) {        File dir = new File("E:\\Learning materials\\JAVA\\day19");        listDirectory(dir);        listFile(dir);    }    public static void listDirectory(File dir){        File[] dirs = dir.listFiles();        System.out.println("文件夹:");        for(File fileItems:dirs){            if(fileItems.isDirectory()){                System.out.println("\t"+fileItems.getName());            }                   }    }    public static void listFile(File dir){        File[] dirs = dir.listFiles();        System.out.println("文件:");        for(File fileItems:dirs){            if(fileItems.isFile()){                System.out.println("\t"+fileItems.getName());            }                   }    }}
原创粉丝点击