美文网首页
10.File类和IO

10.File类和IO

作者: 芝麻酱的简书 | 来源:发表于2018-12-20 17:09 被阅读5次
    IO流总结

    File

    Java的集合框架: 类和接口存在于java.util包中.

    Java的IO: 类和接口存在于java.io包中.

    File类介绍和路径分隔符:

    File类是IO包中唯一表示磁盘文件和磁盘目录的对象的路径.

    该类包含了创建,删除文件,重命名文件,判断文件读写权限以及文件是否存在,查询等功能方法.

    只能设置和获取文件本身的信息,不能设置和获取文件的内容.

    Java做开发: 一次编写,到处运行.

    Unix: 严格区分大小写.

    WIndows: 默认情况下是不区分大小写的.

    路径分隔符,属性分隔符:

    
    Unix:          使用”/”,来分割目录路径.               使用:来分割属性.
    
    Windows:  使用”\”,来分割目录路径.但是在Java中一个”\”表示转义,在Windows平台的Java代码中表示一个路径,就得使用两个\\. 
    但是Windows支持/.                 使用;来分割属性.
    

    因为我们不知道以后运行的系统平台是什么,就不知道该如何编写分隔符的问题,因此在File类中提供了两类常量,分别来表示路径分隔符和属性分隔符.

            // 获取属性分隔符
            String pathSeparator = File.pathSeparator;
            char pathSeparatorChar = File.pathSeparatorChar;
            
            // 获取路径分隔符
            String separator = File.separator;
            char separatorChar = File.separatorChar;
            
            // 表示一个文件的路径
            String path = "c:/will/123.txt";
    
    常用方法:
    获取File路径和检测状态:
    操作File路径和名称:
    File getAbsoluteFile() :获取绝对路径
    String getAbsolutePath():获取绝对路径
    String getPath() :获取文件路径
    String getName() :获取文件名称
    File getParentFile():获取上级目录文件
    String getParent() :获取上级目录路径
    检测File状态的方法:
    boolean canExecute() :判断是否是可执行文件
    boolean canRead() :判断该文件是否可读
    boolean canWrite():判断该文件是否可写
    boolean isHidden():判断该文件是否是隐藏文件
    long lastModified():判断该文件的最后修改时间
    long length():获取该文件的长度大小(单位字节)
    File类中方法-文件操作:
    boolean isFile() :是否是文件
    boolean createNewFile() :创建新的文件
    static File createTempFile(String prefix, String suffix) :创建临时文件
    boolean delete() :删除文件
    void deleteOnExit() :在JVM停止时删除文件
    boolean exists():判断文件是否存在
    boolean renameTo(File dest) :重新修改名称
    ---------------------------------------------------------------------
    File类中方法-目录操作
    boolean isDirectory() :判断是否是目录
    boolean mkdir()  :创建当前目录
    boolean mkdirs() :创建当前目录和上级目录
    String[] list() :列出所有的文件名
    File[] listFiles() :列出所有文件对象
    static File[] listRoots() :列出系统盘符
    
    补充:文件过滤器(FilenameFilter)


    IO

    什么是IO:(Input/Output):输入和输出.
    IO设备: 和电脑通信的设备.
    输入设备:麦克风,扫描器,键盘,鼠标等.
    输出设备:显示器,打印机,投影仪,耳机,音响等.

    IO操作是一个相对的过程,一般的,我们在程序角度来思考(程序的内存).

    • 程序需要数据: 把数据流入到程序中,输入.
    • 程序需要保存数据,把数据传递给别人: 输出.
    IO流的分类和操作模板:

    IO流的分类,站在不同的角度,分类方式是不一样滴:
    1):根据流向划分: 输入流和输出流.
    2):根据数据的单位划分: 字节流和字符流.
    3):根据功能的划分:节点流和包装流.

    四大基流:(字节输出流,字节输入流,字符输出流,字符输入流)
    四大基流都是抽象类:其他流都是继承于这四大基流的.
    我们不能创建四大基流的对象,只能创建其子类对象.
    无论是什么流,都有close方法,用来关闭资源.

    如果操作文件,就得开通一个流对象关联我们得磁盘文件,如果不关闭资源,那么磁盘的文件一直被程序所引用着,不能删除,也不能更改.

    操作IO流的模板:

    1):创建源或者目标对象(挖井).
    拿文件流举例:
    输入操作: 把文件中的数据流向到程序中,此时文件是源,程序是目标.
    输出操作: 把程序中的数据流向到文件中,此时文件是目标,程序是源.

    2):创建IO流对象(水管).
    输入操作: 创建输入流对象.
    输出操作: 创建输出流对象.

    3):具体的IO操作.
    输入操作: 输入流对象的read方法.
    输出操作: 输出流对象的write方法.

    4):关闭资源(勿忘). 一旦资源关闭之后,就不能使用流对象了,否则报错.
    输入操作: 输入流对象.close();
    输出操作: 输出流对象.close().


    操作IO流的六字箴言:
    读进来,写出去.
    读进来: 进来强调了是输入, 读说明是read方法.
    写出去: 出去强调了是输出,写说明是write方法.

    相关文章

      网友评论

          本文标题:10.File类和IO

          本文链接:https://www.haomeiwen.com/subject/avuykqtx.html