• 黑马程序员——JAVA学习笔记十一(文件操作File)


      为了很方便的代表文件的概念,以及存储一些对于文件的基本操作,在java.io包中设计了一个专门的类——File类。
      在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹,所以以前曾有人建议将该类的类名修改成FilePath,因为该类也可以代表一个文件夹,更准确的说是可以代表一个文件路径。
    1、创建文件
    1)boolean java.io.File.createNewFile() throws IOException用来创建文件,如果文件存在,创建失败,返回false;
    2)new File("a.txt");并不创建文件实体,只是创建一个指向“a.txt”的引用。
    3)路径分隔符:File.separator
     
    2、删除文件
    1)delete():删除文件成功返回true,删除失败返回false( boolean java.io.File.delete()  )
    2)deleteOnExit():程序退出时,自动删除文件。一般用于对程序创建的临时文件进行操作,退出时删除。( void java.io.File.deleteOnExit()  )
     
    3、判断文件是否存在
    exists():判断文件是否存在( boolean java.io.File.exists() )
     
    4、创建文件夹
    1)mkdir():只能创建“一级目录”(boolean java.io.File.mkdir());
    2)mkdirs():可以创建多级目录(boolean java.io.File.mkdirs())。
     
    5、文件类型判断
    1)exists():判断文件是否存在,注意:一定要先判断这个;
    2)isDirectory():判断是否为文件夹;
    3)isFile():判断是否为文件;
    4)isHidden():判断是否为隐藏文件;
    5)isAbsolute():判断是否为绝对路径,这里不管文件是否存在都能判断。
     
    6、获取文件信息
    1)getName():获取文件名;
    2)getParent():获取文件父目录;
    3)getPath():获取文件路径;
    4)getAbsolutePath():获取文件绝对路径;
    5)lastModified():获得文件最后一次被修改的时间;
    6)length():获取文件大小;
    7)renameTo():文件剪切,将文件f1剪切然后粘贴到f2(相当于右键f1->剪切->粘贴->f2所在目录)
     
    7、获取目录下文件名
    1)listRoots():获取系统盘符;
    2)list():获取“X:\”目录下的所有文件名,包括隐藏文件和文件夹(调用list()方法时,必须先封装一个目录,且必须存在的目录。)
    3)list(FilenameFilter filter):列出文件名的时候,可以进行过滤操作(如:列出后缀名为.txt的文件)。
    4)listFiles():列出目录下文件名,不包括文件夹。
    5)listFiles(FileFileter filter),列出文件,过滤。
    过滤接口:FileNameFileter  FileFileter
    隐藏文件不能写。
     

    10、Properties类

    1)常用的基本操作,设置键值,获取值。

    prop.setProperty(String ,String);  
    load(InputStream in); 
     //第二个参数为注释,可写可不写,写入时会自动添加#   prop.store(fos, "comment");   
    list(OutputStream out);
    Set<String> stringPropertyNames()  
     
    11、SequenceInputStream类:连接多个流
    说明:Enumeration(列举)
    public interface Enumeration<E>实现 Enumeration 接口的对象,它生成一系列元素,一次生成一个。连续调用 nextElement 方法将返回一系列的连续元素。
    例如,要输出 Vector<E> v 的所有元素,可使用以下方法:
    for (Enumeration<E> e = v.elements(); e.hasMoreElements();)
    System.out.println(e.nextElement());
    这些方法主要通过向量的元素、哈希表的键以及哈希表中的值进行枚举。枚举也用于将输入流指定到 SequenceInputStream 中。
    注:此接口的功能与 Iterator 接口的功能是重复的。此外,Iterator 接口添加了一个可选的移除操作,并使用较短的方法名。新的实现应该优先考虑使用 Iterator 接口而不是 Enumeration 接口。
    有两个方法:
    hasMoreElements() 测试此枚举是否包含更多的元素。
    nextElement() 如果此枚举对象至少还有一个可提供的元素,则返回此枚举的下一个元素。
     
    12,管道流:
    1)平时两个流读写都是通过内存变量,进行数据操作的;
    2)这里引入管道流,开启两个线程,一个读取流,一个写入流,直接将两个流对接上。
            PipedInputStream in = new PipedInputStream();  
            PipedOutputStream out = new PipedOutputStream();  
    
    
    同类:Path  和Files是JAVA7添加进来的,它比File要方便的多。
  • 相关阅读:
    数据结构之 线性表 逆序简历链表
    数据结构之 线性表--顺序创建链表
    参观——校园招聘大会
    SDUT OJ 之 1571 《人品,有没有?》 字符串的处理问题
    青岛理工交流赛 H题 素数间隙
    青岛理工ACM交流赛 J题 数格子算面积
    STL版 括号匹配(感觉不如之前自己用数组模拟的跑的快)
    1076: [SCOI2008]奖励关( dp )
    BZOJ 1079: [SCOI2008]着色方案( dp )
    BZOJ 1984: 月下“毛景树”( 树链剖分 )
  • 原文地址:https://www.cnblogs.com/solaire/p/4185803.html
Copyright © 2020-2023  润新知