IO流(二)

二、File类

  概述

    文件和目录路径名的抽象表示形式

  构造方法

    public File(String pathname)
    public File(String parent,String child)
    public File(File parent,String child)

  成员方法

    创建功能

      public boolean createNewFile()
      public boolean mkdir()
      public boolean mkdirs()

    删除功能

      public boolean delete()

    重命名功能

      public boolean renameTo(File dest)

    判断功能

      public boolean isDirectory()
      public boolean isFile()
      public boolean exists()
      public boolean canRead()
      public boolean canWrite()
      public boolean isHidden()

    基本获取功能

      public String getAbsolutePath()
      public String getPath()
      public String getName()
      public long length()
      public long lastModified()

    高级获取功能

      public String[] list()
      public File[] listFiles()

三、递归

  概述

    方法定义中调用方法本身的现象

  注意事项

    要有出口,否则就是死递归
    次数不能太多,否则就内存溢出
    构造方法不能递归使用

  递归解决问题的思想

    找到出口
    找到规律

  图解

IO流(二)

四、IO流

  概述

    IO流用来处理设备之间的数据传输
    上传文件和下载文件
    Java对数据的操作是通过流的方式
    Java用于操作流的对象都在IO包中

  分类

    按照数据流向
    输入流 读入数据
    输出流 写出数据
    按照数据类型
    字节流
    字符流
    什么情况下使用哪种流呢?
      如果数据所在的文件通过windows自带的记事本打开并能读懂里面的内容,就用字符流。其他用字节流。
      如果你什么都不知道,就用字节流

  IO流常用基类

    字节流的抽象基类:
      InputStream ,OutputStream。
    字符流的抽象基类:
      Reader , Writer。
      注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。
      如:InputStream的子类FileInputStream。
      如:Reader的子类FileReader。

  字节流写数据

    OutputStream
    FileOutputStream

  FileOutputStream的构造方法

    FileOutputStream(File file)
    FileOutputStream(String name)

  字节流写数据的方式

    public void write(int b)
    public void write(byte[] b)
    public void write(byte[] b,int off,int len)

  字节流读取数据

    InputStream
    FileInputStream

    FileInputStream的构造方法

      FileInputStream(File file)
      FileInputStream(String name)

    FileInputStream的成员方法

      public int read()
      public int read(byte[] b)

    字节流读取数据两种方式

      一次读取一个字节
      一次读取一个字节数组
      每次可以读取多个数据,提高了操作效率

  字节缓冲流

    概述

      字节流一次读写一个数组的速度明显比一次读写一个字节的速度快很多,这是加入了数组这样的缓冲区效果,java本身在设计的时候,也考虑到了这样的设计思想(装饰设计模式做项目的时候讲解),所以提供了字节缓冲区流

    字节缓冲输出流

      BufferedOutputStream

    字节缓冲输入流

      BufferedInputStream

    字符流操作要注意的问题

      flush()的作用
      flush()和close()的区别

  转换流出现的原因及思想

    由于字节流操作中文不是特别方便,所以,java就提供了转换流。
    字符流=字节流+编码表。

  编码表概述和常见的编码表

    编码表

      由字符及其对应的数值组成的一张表

    常见编码表

      ASCII/Unicode 字符集
      ISO-8859-1
      GB2312/GBK/GB18030
      BIG5
      UTF-8

  字符串中的编码问题

    编码

      把看得懂的变成看不懂的

    解码

      把看不懂的变成看得懂的

  转换流构造方法

    OutputStreamWriter 字符输出流
    public OutputStreamWriter(OutputStream out)
    public OutputStreamWriter(OutputStream out,String charsetName)
    InputStreamReader 字符输入流
    public InputStreamReader(InputStream in)
    public InputStreamReader(InputStream in,String charsetName)

  OutputStreamWriter写数据

    public void write(int c)
    public void write(char[] cbuf)
    public void write(char[] cbuf,int off,int len)
    public void write(String str)
    public void write(String str,int off,int len)

  InputStreamReader读数据

    public int read()
    public int read(char[] cbuf)

  转换流的简化写法

    转换流的名字比较长,而我们常见的操作都是按照本地默认编码实现的,所以,为了简化我们的书写,转换流提供了对应的子类。
    FileWriter
    FileReader

  FileWriter和FileReader

    FileWriter写数据
    FileReader读取数据
    FileWriter和FileReader实现文本文件的复制

  字符缓冲流

    特殊功能
      BufferedWriter
      void newLine()
      BufferedReader
      String readLine()

上一篇:hdu 4550 贪婪 思考题 权


下一篇:HTML新增的语义化标签及其作用