• IO流


    一、File

      File对象是文件夹或路径。

      构造器:

      1、File(String pathname)

      2、File(File parent, String child)

      3、File(String parent, String child) 

       字段:File.separator:即“”,它可以根据系统自动匹配

      

      创建文件:

      boolean createNewFile()  :创建文件

      创建文件夹:

      boolean mkdir() :创建一个目录。

      boolean mkdirs() :创建多层级目录。

      删除文件或文件夹

      boolean delete() : 删除文件或文件夹(只能是空)

      获取文件或文件夹信息

      1、boolean exists() :判断文件或文件夹是否存在

      2、File getAbsoluteFile() :返回此抽象路径名的绝对路径名形式。

      3、String getAbsolutePath() :返回此抽象路径名的绝对路径名字符串。

      4、String getName() :返回由此抽象路径名表示的文件或目录的名称。

      5、String getParent() :返回此抽象路径名父目录的路径名字符串;

      6、File getParentFile() :返回此抽象路径名父目录的抽象路径名;

      7、String getPath() :将此抽象路径名转换为一个路径名字符串。

      8、boolean isDirectory() :判断是否是一个文件夹。

      9、boolean isFile() :判断是否是一个文件。

      10、long length() :返回文件的长度。

      其他常用方法:

      1、String[] list() :返回路径下文件和文件夹的String数组形式

      2、String[] list(FilenameFilter filter) :返回路径下满足过滤器的文件和文件夹的String形式

      3、File[] listFiles():返回路径下文件和文件夹的File数组形式

      4、File[] listFiles(FileFilter filter) :返回路径下满足过滤器的文件和文件夹的File数组形式

      5、File[] listFiles(FilenameFilter filter) :返回路径下满足过滤器的文件和文件夹的File数组形式

      过滤器:均是抽象类

      1、FileFilter

      下图:是获取所以文件,过滤掉文件夹

      2、FilenameFilter

    二、字节流

      InputStream、OutputStream:抽象类

      文件字节输入流:FileInputStream

             构造器:

             1、FileOutputStream(File file) :创建一个向指定 File 对象表示的文件中写入数据的文       件输出流。

             2、FileOutputStream(File file, boolean append) :创建一个向指定 File 对象表示的文       件中写入数据的文件输出流,true为追加。

             3、FileOutputStream(String name) :创建一个向具有指定名称的文件中写入数据的输       出文件流。

             4、FileOutputStream(String name, boolean append) :创建一个向具有指定 name 的       文件中写入数据的输出文件流,true为追加。

             主要方法:

             1、int read() :从此输入流中读取一个数据字节。

            2、int read(byte[] b) :从此输入流中将最多 b.length 个字节的数据读入一个 byte 数       组中。

      文件字节输出流:FileOutputStream

        构造器:

        1、FileOutputStream(File file):创建一个向指定 File 对象表示的文件中写入数据的文件       输出流。

        2、FileOutputStream(File file, boolean append) :创建一个向指定 File 对象表示的文       件中写入数据的文件输出流,true为追加。

        3、FileOutputStream(String name) :创建一个向具有指定名称的文件中写入数据的输       出文件流。

        4、FileOutputStream(String name, boolean append) :创建一个向具有指定 name 的       文件中写入数据的输出文件流,true为追加。

             主要方法:

        1、void write(byte[] b) :将 b.length 个字节从指定 byte 数组写入此文件输出流中。

        2、void write(int b) :将指定字节写入此文件输出流。

      实际操作如下:

    三、字符流

      继承结构如下:

      文件字符输入流:FileReader

      文件字符输出流:FileReader

      构造方法和主要方法与字节流差不多,只是读取单位为字符。

      实际操作如下:

      注意:

      1、输出流创建对象时,如果输出路径存在,不存在文件的话,会自动创建该文件。

      2、字符输出流写入内容必须使用flush或者close方法,否则不会写入内容。

      3、关流的原则:先开后关。

      4、创建数组时,不是越大越好,因为占用内容资源,需根据需求选择合适大小。

    四、转换流

      作用:将字节流转换成字符流,方便操作中文,可以设置编码集

      实际操作如下(使用到了jdk7之后,处理流相关异常及关闭流的操作方式)

    五、缓冲流

      用来包装其他流,提效率

           BufferedInputStream

           BufferedOutputStream

           BufferedReader     主要方法:String readLine()

           BufferedWriter      主要方法:void newLine()

    六、打印流

      (常用)两个流均是打印流,除了有write方法,还提供了println、print方法。

           实际开发时,读时可以选择BufferedReader、Scanner,写时可以选择PrintWriter

           PrintStream:字节流

           PrintWriter:字符流

           实际操作如下:

      标准输入输出流、标准错误输出流

      1、System.out :是一个特殊的 PrintStream “标准”输出流 : 输出结果到控制台

      2、System.err :是一个特殊的 PrintStream "标准"错误输出流 : 输出到控制台,eclipse显示红色

      3、System.in  是一个特殊的InputStream "标准"输入流 : 数据源来至控制台输入

      标准输入输出流、标准错误输出流的重定向:例如System.out 把数据输出到控制台,       通过重定向可以改变输出的目的地

      重定向的方法:

      static void setErr(PrintStream err) 重新分配“标准”错误输出流。

      static void setIn(InputStream in) 重新分配“标准”输入流。

      static void setOut(PrintStream out) 重新分配“标准”输出流。

    七、对象流

           将对象持久化到硬盘,读取硬盘中的对象

           ObjectOutPutStream

           ObjectInputStream

           实际操作如下:

      注意:持久化对象必须实现Serializable接口。

    八、文件扫描器

           Scanner文件扫描器,该类实现Iterator接口(意思就是有点像迭代器)

           构造器:

           1、Scanner(File source) :可以是一个文件,对应的构造方法

           2、Scanner(InputStream source):可以是其它的输入流,对应的构造方法

           3、Scanner(String source) :仅仅从一个字符串中读取,对应的构造方法

           主要方法:

           1、、String next() :扫描到标记,默认是空格(next–hasNext搭配使用)

           2、、Scanner useDelimiter(String pattern) :自定义分割符,支持正则表达式

           3、 boolean hasNextLine() :扫描一行(nextLine-hasNextLine搭配使用)

           实际操作如下:

    注意:iterable与iterator的区别:实现iterable接口的类可以使用foreach循环,这个接口提供一个获取迭代器的方法iterator();迭代器可以用来遍历集合中的元素。

    九、随机访问文件

           RandomAccessFile:此类的实例支持对随机位置访问文件的读取和写入

           构造方法:

           RandomAccessFile(File file, String mode)  :mode有r(只读),rw(读写)…

           RandomAccessFile(String name, String mode)

           重要方法:

        long getFilePointer()  获得偏移量

        void seek(long pos)  设置文件指针

        long length() 返回此文件的长度

    void setLength(long newLength)  设置此文件的长度

    实际操作如下:

    十、正则表达式

           就是限定字符串的格式,如手机号、邮箱、游戏账号

           基本写法:

           1、字符直接匹配: “abc”

           2、表示一类事物:”[0-9]”表示0到9任意一位数字,等价于”[0123456789]”

           3、数量:”[0-9]{11}” 表示十一位数字 ”[0-9]{6,18}”表示6到18位数组

           4、分组:()()() 可以用$1 $2 $3表示三个组

           5、其他使用方法可以查api

           用法:

           String中提供了很多对正则表达式支持的方法

           如:

           String[] split(String regex) :根据给定正则表达式的匹配拆分此字符串。

           String replaceAll(String regex, String replacement) :使用给定的 replacement 替换此       字符串所有匹配给定的正则表达式的子字符串。

           boolean matches(String regex) :告知此字符串是否匹配给定的正则表达式。

  • 相关阅读:
    阿里巴巴2018秋招面经之前端岗(1~5面)
    面试分享:2018阿里巴巴前端面试总结(题目+答案 30题)
    2018年各大互联网前端面试题三(阿里)
    阿里巴巴2016前端工程师面试题
    2016 阿里校招笔试前端题目,你还记得吗?
    2018阿里前端校招分享(笔试篇)
    2017 阿里校招前端笔试题小结
    阿里2018校招编程题
    ko.js学习一
    简单的3d变换
  • 原文地址:https://www.cnblogs.com/zwcnblog/p/9991509.html
Copyright © 2020-2023  润新知