`

JAVA IO

阅读更多
1.JAVA IO系统简介    
  JAVA IO (input/output)系统用来处理程序的输入和输出,IO类库位于java.io包中,它提供了全面的IO接口,包括文件读写,标准输出等。

  在Java中,我们把能够读取一个字节序列的对象称作一个输入流;而我们把够写一个字节序列称作一个输出流。
  如果数据流中最小的数据单元是字节,那么就称这种流为字节流。
  如果数据流中最小的数据单元是字符,那么就称这种流为字符流。

  它们分别由抽象类InputStream和OutputStream类表示。因为面向字节的流不方便用来处理存储为Unicode(每个字符使用两个字节)的信息。所以Java 引入了用来处理Unicode字符的类层次,这些类派生自抽象类Reader和Writer,它们用于读写双字节的Unicode字符,而不是单字节字符。
 
  字节流如 InputStream 字节输入流 ,OutputStream 字节输出流.
  字符流如 Reader字符输入流,Writer字符输出流.
  从JDK 1.4后开始引入新的IO类库,位于java.nio包中,新IO类库利用通道和缓冲区来提高IO操作的效率.

2.输入流和输出流
  java.io.InputStream和java.io.OutputStream分别表示字节输入流和字节输出流.
  它们都是抽象类,不能被实例化。
 
  输入流
  InputStream类提供了一系列和读取数据相关的方法
  1)int read():从输入流读取数据
  a.int read():从输入流读取一个8位的字节,把它转换称0-255之间的整数,返回这一个整数,如果读到输入流的末尾,就返回-1.
  b.int read(byt[] b):从输入流读取若干个字节,把它们保存到参数b制定的字节数组中,返回的整数表示读取的字节数,如果遇到输入流的结尾,返回-1.
  a 中是从输入流读取一个字节, b则是从输入流批量读取若干字节.在从文件或键盘读取数据时,应该采用后者可以减少进行物理读文件或键盘的次数,提高IO的效率.
 
  2)void close() 关闭输入流,当完成所有的操作后,应该关闭输入流。InputStream类本身的close()方法不执行任何操作,但是它的一些子类重写 close()方法,可以释放和流有关的系统资源.
  3)int avaliable():可以返回从输入流中读取的字节数目

   输出流
   OutputStream 类提供了一些与写数据有关的方法
   1) void write(int b):向输出流写数据
     a. void write(int b) ,向输出流写入一个字节
     b. void write(byte []b) 把参数 b制定的字节数组中的所有字节写到输出流
     a是向输出流写入一个字节, b是向输出流批量写入若干字节.
   2) void close()方法 关闭输入流。当完成所有操作后,应该关闭输出流,OutputStream()类的本身close()方法不执行任何操作,也是由子类重写实现
    3) void flush(): OutputStream 类本身的 flush()方法不执行任何操作,它的一些带有缓冲区的子类 BufferedOutputStream 和 PrintStream 类覆盖了flush方法,通过带缓冲区的输出流写数据时,数据先保存在缓冲区中,积累到一定程度才会真正写入到输出流中。缓冲区通常用字节数组实现,实际上是指一块内存空间,flush()方法强制把缓冲区的数据写到输出流中.
 
 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics