Java学习笔记之I/O

时间:2023-02-14 23:53:16

    Java.io包含一组支持读写算法的流类,流类被分为两个层次结构,包括字符流和字节流。

一、字符流

     Reader和Writer是字符流的抽象超类,可以读写16位字符。具体使用可以参见Java API

二、字节流

     InputStream和OutputStream是字节流的抽象超类,可以读写8位的字节。具体的使用可以参见Java API

三、流的使用

     1、文件流的使用

           这是实例代码,简单的表示文件流的使用

  
  
  
File inputFile = new File( " abc.txt " );
FileReader in
= new FileReader(inputFile);

     2、管道流的使用

 

          管道用于将一个线程的输出连接到另一个线程的输入

     3、流的封装

          将读入写出分别封装在BufferReader和PrintWriter对象中,以调用他们的readLine和println方法,这样进行封装可以组合流的各种功能

 

-------------------------------------------------------------------------------------------------------------------------------------------------

                                                                               分割线

-------------------------------------------------------------------------------------------------------------------------------------------------

Java输入输出的学习十分枯燥,但是几乎每一本介绍Java的书上都会或多或少的介绍Java的输入输出,足见其重要性。这里主要针对文件的输入输出进行比较详细的讨论,其他领域的输入和输出类比可得。

一、FileInputStream和FileOutputStream

     使用时,利用new FileOutputStream(new File(args[0]))或new FileInputStream(new File(args[0]))建立对象,输入输出流就被打开,使用各自的close()方法关闭输入输出流。

     使用read()函数一次读入一个字节,或者read(buffer)一次读入字节数组buffer中的所有数据

二、BufferedInputStream和BufferedOutputStream

    可以为InputStream和OutputStream类的对象增加缓存区功能,新建方法为new BufferInputStream(new FileInputStream(new File(args[0])))

    read和write方法读取和输出字节数组中的数据。flush()方法一次把缓冲区中的数据全部写出目的流中。

三、DataInputStream和DataOutputStream

    对Java中基本的数据类型进行读入和写出。新建方法为new DataInputStream(new FileInputStream)。在进行完所有操作之后使用close()方法关闭流。使用readUTF或readInt等方法读入对应的数据。但是这两个方法并没有改变FileInputStream和FileOutputStream的行为

四、ObjectInputStream和ObjectOutputStream

    将对象直接存储到文件。必须实现java.io.Serializable接口