zoukankan      html  css  js  c++  java
  • Java IO整理

      1.文件操作

        获取File 对象( File file = new File(path); )之后,可以创建文件,创建文件夹,销毁文件,判断是否为目录,得到该路径下的所有文件。

        file.createNewFile();          //创建文件

        file.mkdir();                         //创建文件夹

        file.delete();                        //实时销毁

        file.deleteOnExit();              //当jvm终止时,被执行销毁

        file.isDirectory();                 //判断是否为目录

        File files = file.listFiles();       //得到该路径下的所有文件,返回的是File数组,得到完整路径

        String files = file.list();        //得到的是所有文件,返回String数组,不是完整路径。

      2.输入输出流

        接口: DataInput, DataOutput, ObjectInput, ObjectOutput

        字节流:继承InputStream, OutputStream抽象类,输入流中与数据源有直接接触的类有FileInputStream, 和ByteArrayInputStream, 其他都是装饰类(Decorator模式)

          FileInputStream

          PipedInputStream(允许以管道的方式来处理流):PipedInputStream和PipedOutStream类用于在应用程序中创建管道通信。一个PipedOutputStream必须与一个PipedInputStream连接建立一个通信管道,PipedOutputStream可以向管道中写入数据,PipedInputStream可以从管道中读取PipedOutputStream写入的数据。这两个类主要用来完成线程之间的通信。一个线程的管道输入流可以从另一个线程的管道输出流中读取数据。使用管道流类,可以实现各个程序模块之间的松耦合通信。

    1.   ByteArrayInputStream:主要将内容写入内存,内存操作流

        FilterInputStream

        DataInputStream(允许程序以与机器无关的方式从底层输入流中读取基本java数据类型)

        BufferedInputStream(提供缓冲功能)

          PushbackInputStream:允许放回已经读取的数据 内部生成一个buff, 每次调用unread 就将参数buff里的东东加入到buff里,然后每次调read时,如果buff里有东西,就返回buff里的东西.否则从inputstream里读.注意:push back buff不会自动填充read的东西,而是需要显示调用unread来的填充).

          SequenceInputStream: 能对多个inputstream进行顺序处理。new SequenceInputStream(input1, input2);

        提供重要的方法

        a.  read() // 返回读的下一个字节。

        b.  read(byte[] b);  //返回读入缓冲区的总字节数。

        c.  read(byte[] b, int off, int len); //读取的字节数 int

        

        字符流:Reader, Writer(以16位的Unicode表示的字符为基本处理单位)

          a.  FileReader

          b.  PipedReader

          c.  CharArrayReader

          d.  FilterReader

          e.  StringReader

          f.   BufferedReader

        提供方法

            1write(char[] cbuf);

            2write(char[] cbuf, int off, int len);

            3write(int c); //将指定的字节写入此输出流。write 的常规协定是:向输出流写入一个字节。要写入的字节是参数 b 的八个低位。b 的 24 个高位将被忽略

            4write(String str);

        对象流: ObjectInputStream, ObjectOutputStream

        文件处理:RandomAccessFile

        字节流和字符流的区别:

          字节流在操作时,本身不会用到缓冲区的,是文件本身直接操作的。但是字符流在操作的时候,是会用到缓冲区的,是通过缓冲区来操作文件的。

        OutputStreramWriter 和InputStreamReader类,字符和字节转换流。(OutputStreramWriter将输出的字符流转化为字节流,InputStreamReader将输入的字节流转换为字符流)

        对象的序列化

  • 相关阅读:
    学习C#泛型
    css半透明渐变过渡效果
    CSS Grid布局
    CSS writing-mode属性
    单点登录原理与简单实现
    linux磁盘挂载
    Fiddler抓包工具学习
    javascript事件机制之冒泡、捕获、传播、委托
    HTML行内元素、块状元素、行内块状元素的区别
    console.log详细介绍
  • 原文地址:https://www.cnblogs.com/chenyao/p/2995222.html
Copyright © 2011-2022 走看看