`

Java IO流 分类 概述

阅读更多

文件流


       实现对文件的读取操作:FileInputStream FileReader
       实现对文件的写入操作:FileOutputStream FileWriter

 


缓冲流


       ByteArrayInputStream、ByteArrayOutputStream:

              在内存中创建一个字节缓冲区实现信息的读取、写入。关闭此流后,类中的方法仍能调用,不会产生异常。
 
       CharArrayReader、CharArrayWriter:

              在内存中创建一个字符缓冲区实现信息的读取、写入。
 
       BufferedReader、BufferedWriter:
       BufferedInputStream、BufferedOutputStream:
               支持其父类的mark()和reset()方法;
               BufferedReader、BufferedWriter能够读取写入一行字符串;
               刷新缓冲的输出流方法flush();
  


管道流


        PipedInputStream、PipedOutputStream:主要在线程中使用
        PipedReader、PiperWriter:

 

 

数据流


        DataInputStream、DataOutputStream:提供了可以存取各种基本类型数据。

 


转换流


 InputStreamReader、OutputStreamWriter:可以指定编码格式

 


Print流
 

        PrintWriter:
        PrintStream:

1、提供了重载的print、println方法用于多种数据类型的输出;
2、 不会抛出异常;
3、具有自动刷新flush功能。

 

 

Object流


 1、直接将Object读取写入;
 2、transient关键字
           不需要序列化的属性。
 3、Serializable接口
           实现Serializable接口不需要实现任何方法,但被其修饰的需要序列化的类必须有一个空的构造函数。否则在readObject时会出现InvalidClassException异常。
 4、Externalizable接口
           自定义序列化。
 

 

过滤流

 

 

 FilterInputStream:

BufferedInputStream

DataInputStream

 

FilterOutputStream:

BufferedOutputStream

DataOutputStream

PrintStream
  


RandomAccessFile


 1) 可通过RandomAccessFile对象完成对文件的读写操作
 2) 在产生一个对象时,可指明要打开的文件的性质:r,只读;w,只写;rw可读写
 3) 可以直接跳到文件中指定的位置


另:
 StringBufferInputStream、StringBufferOutputStream:过时,不能正确将字符转换为字节。从字符串创建流应首选StringReader、StringWriter类。
 
 SequenceInputStream:把多个InputStream合并为一个InputStream,它没有对应SequenceOutputStream。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics