java_IO小结

来源:互联网 发布:win10 自动维护 知乎 编辑:程序博客网 时间:2024/05/17 12:24

I/O:程序与外部世界间的接口(文件,网络,内存)

流的基本概念

  流是一个抽象的概念。当Java程序需要从数据源读取数据时或输出数据到目的地时,会开启一个到数据源的流。数据源(目的地)可以是文件,内存或者网络等。

  流分为字节流和字符流。字节(byte)流需要用户读入后进行相应的编码转换,而字符(char)流读取数据时会把数据按照JVM的默认编码自动转换成字符。

  字节流:InputStream和OutputStream,字符流:Reader和Writer。

        字节(byte)---》解码--》字符(char)     /0x880x660x55-->中国

        字符(char)-->编码-->字节(byte)                     /中国->/0x880x8608x5

字节流

  

  

  输入流中跟数据源直接接触的类有:FileInputStreamByteArrayInputStream,他们分别实现了从文件或者内存中的字节数组读入数据到输入流。  

  跟数据目的地直接接触的类有:FileOutputStreamByteArrayOutputStream,前者实现了把数据流写入文件的功能,后者实现了一个输出流,其中的数据被写入一个       byte   数组。

其他的输入流、输出流处理类都是装饰类(Decorator模式),下面对他们进行一下简单介绍:

    BufferedInputStream: 提供了缓冲功能。

    DataInputStream: 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。

    BufferedOutputStream: 提供了缓冲功能的输出流,在写出完成之前要调用flush来保证数据的输出。

    DataOutputStream: 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。

字符流

  

 

  

 

流中的其他方法

  Writer或者OutputStream中的flush(): 刷新该流的缓冲,用于确保数据的输出。

  close(): 关闭流并释放与之关联的所有系统资源。





0 0