day22 Java学习 IO流(序列流)

IO流(序列流)

     序列流:

                  * 可以把多个字节输入流整合成一个,从序列流中读取数据时,将从被整合的第一个流开始读,读完一个之后继续读第二个。

    整合方式:

                  * Seq uenceInputStream ( InputStream ,InputStream )

IO流(序列流整合多个)

    public static void main(String[] args) throws IOException {
        FileInputStream fis1 = new FileInputStream("test1.txt");
        FileInputStream fis2 = new FileInputStream("test2.txt");
        FileInputStream fis3 = new FileInputStream("test.txt");
        Vector<InputStream> v = new Vector<>();
        v.add(fis1);
        v.add(fis2);
        v.add(fis3);
        Enumeration<InputStream> en = v.elements();
        SequenceInputStream sis = new SequenceInputStream(en);
        FileOutputStream fos = new FileOutputStream("list.txt");
        int b;
        while ((b = sis.read()) != -1) {
            fos.write(b);
        }
        sis.close();
        fos.close();
    }
例子

IO流(内存输出流)

  内存输出流:

               * 该输出可以向内存中写数据,把内存当作一个缓冲区,写出之后可以一次性获取出所有数据。

    public static void main(String[] args) throws IOException {
        FileInputStream fis1 = new FileInputStream("test1.txt");
        ByteArrayOutputStream by = new ByteArrayOutputStream(); // 在内存中创建了可以增长的内存数组
        int b;
        while ((b = fis1.read()) != -1) { // 将读到的数据逐个写到内存中
            by.write(b);
        }
        System.out.println(by); // 将缓冲区的内容转换成了字符串
        fis1.close();
    }
例子

IO流(随机访问流和读写数据)

   随机访问流:

                      * RandomAccessFile类不属于流,是Object类的子类,但他融合了InputStream和OutputStream的功能。支持对随机访问文件的读取和写入。

    seek():设置指定位置读和写

IO流(对象操作流 )

   对象操作流 :该流可以将一个对象写出。或者读取一个对象到程序中,也就是执行了序列化和反序列化的操作。       

   使用方式:

               new ObjectOutputStream(OutputStream),writeObject( )。

猜你喜欢

转载自www.cnblogs.com/feng0001/p/10965452.html