黑马程序员--java IO流(二)

来源:互联网 发布:cf手游刷钻软件注册码 编辑:程序博客网 时间:2024/05/16 01:25

                  ------- android培训  java培训、期待与您交流! ----------

一、File

    1.File常用的方法:
        mkdir():创建文件夹
         delete():删除文件和空的文件夹
         set():设置文件为可读,可写,可执行
          renameTo():修改文件名,也能移动文件
         lastModified():设置与获取最后修改时间
          getxxx()获取空间与位置

         isxxx()判断是否存在,绝对路径,文件夹,文件,隐藏



    2.函数的递归的定义: 函数自己调用自己
         什么时候要递归:当我们要重要执行某个步骤的时候,就可以用递归解决.需要有退出的条件

         递归的弊端:比较消耗内存



    3.获取一个路径下的所有文件名
       需要:获取所有某个文件夹中所有文件的名字
       思路:
        1.获取所有文件夹与文件.
         2.循环遍历所有的文件夹与文件
        3.判断,如果是文件就打印出来

        4.判断,如果不不是的话,就递归


二.序列流
    1.什么是序列流
        序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推.
    2.使用方式
        整合两个: SequenceInputStream(InputStream, InputStream)
        整合多个: SequenceInputStream(Enumertion)
        
三.内存输出流
    1.什么是内存输出流
        该输出流可以向内存中写数据, 把内存当作一个缓冲区, 写出之后可以一次性获取出所有数据
    2.使用方式
        创建对象: new ByteArrayOutputStream()
        写据: write(int), write(byte[])出数
        获取数据: toByteArray()
        
四.对象操作流
    1.什么是对象操作流
        该流可以将一个对象写出, 或者读取一个对象到程序中. 也就是执行了序列化和反序列化的操作.
    2.使用方式
        写出: new ObjectOutputStream(OutputStream), writeObject()
        读取: new ObjectInputStream(InputStream), readObject()
    3.注意
        要写出的对象必须实现Serializable接口才能被序列化(能转化为字节数组)
        
五.打印流
    1.什么是打印流
        该流可以很方便的将对象的toString()结果输出, 并且自动加上换行, 而且可以使用自动刷出的模式
        System.out就是一个PrintStream, 其默认向控制台输出信息
    2.使用方式
        打印: print(), println()//就是将括号中的内容调用toString()后得到的的内容写到文件中,是按照默认的码表编码成字节,按write(int b)字节的方式写出
        自动刷出: PrintStream(OutputStream out, boolean autoFlush, String encoding)
        
六.标准输入输出流
    1.什么是标准输入输出流
        System.in是InputStream, 标准输入流, 默认可以从键盘输入读取字节数据
        System.out是PrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据
    2.修改标准输入输出流
        修改输入流: System.setIn(InputStream)
        修改输出流: System.setOut(PrintStream)
        
七.数据输入输出流
    1.什么是数据输入输出流
        DataInputStream, DataOutputStream可以按照基本数据类型大小读写数据
        例如按Long大小写出一个数字, 写出时该数据占8字节. 读取的时候也可以按照Long类型读取, 一次读取8个字节.
    2.使用方式
        DataInputStream(InputStream), readInt(), readLong()
        DataOutputStream(OutputStream), writeInt(), writeLong()
        
八.随机读写文件
    1.什么是随机读写文件
        RandomAccessFile可以对文件执行读和写的操作, 可以将指针移动到任意位置, 在任意位置读写
    2.使用方式
        创建对象: RandomAccessFile(String, String) 第一个参数是文件路径, 第二个参数是操作模式, 可以是只读或者控制是否使用缓冲区
        读取:     read(), readInt(), readDouble()
        写出:      write(), writeInt(), writeDouble()
        移动指针: seek()