• 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将输入的字节流转换为字符流)

        对象的序列化

  • 相关阅读:
    题解 【洛谷】AT654
    题解【洛谷】CF134A
    jquery中select的应用
    Linq to xml 小例
    mongodb 使用场景和不使用场景
    一个面试题的解答-----从500(Id不连续)道试题库里随机抽取20道题!
    数据采集
    50款强力jquey,js 插件推荐
    node.js 学习
    wcf好文集合
  • 原文地址:https://www.cnblogs.com/chenyao/p/2995222.html
Copyright © 2020-2023  润新知