首页 > 编程语言 > 详细

介绍Java中IO流

时间:2015-10-19 15:40:49      阅读:219      评论:0      收藏:0      [点我收藏+]

IO流用来处理设备(硬盘,内存,U盘,打印机等)之间的数据传输

java对数据的操作通过流的方式

java用于操作流的对象都在IO包中

流的分类:  

按数据流的方向:

输入流(从文件到程序)和输出流(从程序到文件)  

   输入流:数据以字节形式从其他文件或者终端设备向程序流入,从流中读取数据使用InputStrean类完成  

   输出流:数据以字节形式从程序流出,向流中写入数据,使用OutputStream完成  

按处理数据的单位:字节流和字符流   

    字节流的顶层父类:InputStream,OutputStream   

    字符流的顶层父类:Reader,Writer  按功能:节点流和处理流  

注意: 

  1.凡是带有Input和Reader的都是输入流,凡是带有Output和Writer的都是输出流   

  2.字节流是处理字节类型的数据流对象 ,字符流是处理字符类型的数据流对象   

  3.节点流是直接读取数据的流,处理流是包装节点流的流   

  4.IO流都是成对出现的   

  5.这些体系的子类都以父类名作为后缀。 而且子类名的前缀就是该对象的功能。  

 

一、字节流:    

常见类:

InputStream:输入流,以字节的形式从流中读取数据。

OutputStream:输出流,以字节形式向流中写入数据。

InputStream常用方法: Public void close():关闭输入流    

    Public abstract int read():以数字的方式读取内容    

    Public int read(byte [] b):将内容读取到byte数组中,同时返回读入的个数

OutputStream常用方法:

   Public void close():关闭输出流

  Public abstract int write(int b):在数据流中写入一个字节

  Public void  write(byte[] b):在数据流中写入一个byte数组

  Public void  write(byte[] b,int off,int len):在数据流中写入一个指定范围byte数组

  Public void flush():刷新缓冲区

 

文件流:

FileInputStream主要用于从文件读取数据

FileOuputStream:主要用于向文件中写入数据

注意:  

  Public FileOuputStream(File f,boolean flag)方法:

   Boolean flag 参数是可选的,true表示追加模式向指定的文件中写入数据,当flag为true时,写入的数据追加在打开文件中数据的后面,不会覆盖原有数据。 

 false表示以覆盖模式向文件中写入数据。即覆盖掉原有的数据。默认flag参数值是flase。也可以不要flag参数,如Public FielInputStream(File file);  

 

缓冲流:

BufferedInputStream:为InputStream增加了内存缓冲区

BufferedOutputStream:为OutputStream增加了内存缓冲区  

  根本目的:允许java的IO流一次操作多个字节,从而提高系统的性能。  

创建流的时候可以指定缓冲区的大小:  

    new BufferedInputStream(InputStrean in) //按照32个字节缓冲区的缓冲流  

    new BufferedInputStream(InputStrean in,int size)//指定大小的缓冲流  

    new BufferedOutputStream(OutputStream in) //按照32个字节缓冲区的缓冲流  

    new BufferedOutputStream(OutputStream in,int size)//指定大小的缓冲流  

    flush()方法可以强制输出缓冲区的数据        

 

 

数据流:

DataInputStream:可一次性读取一个double类型的数据(即一次可读取8个字节)

DataOutputStream:可一次性写入一个double类型的数据

  readUTFT()方法:读取一个Unicode编码的字符,默认是UTF-8 数据流一般和字节数组流一起使用

ByteArrayInputStream:用于读取一个字节数组

ByteArrayOutputStream:用于写入一个字节数组

toByteArray()方法:将流中的数据转换成一个字节数组

  需要注意的一点是要先写先读    

 

 

 

二、字符流

Reader:输入流,以字符的形式从流中读取数据。

Writer:输出流,以字符的形式向流总写入数据。

Reader常用方法:    

    Public abstract void close():关闭输入流   

     Public int read():读取单个字符    

    Public int read(char[] c):将内容读取到字符流数组中,并返回读取的长度    

    Writer常用方法:    

    Public abstract void close():关闭输出流    

    Public int writer(String str):输出字符串到流中    

    Public int writer(char[] c):输出字符数组到流中    

    Public abstarct void flush():强制清空缓存        

 

 

文件流:

FileReader

FileWriter

 

转换流:将字节流转换成字符流

InputStreamReader

OutputStreamWriter

 

缓冲流:为流增加缓冲区 BufferedReader BufferedWriter

常用方法:  

     BufferedReader(Reader in ):构造方法,接受Reader类实例   

    Public String readLine():从缓冲区读取一行文本   

    Public int  read():读取单个字符   

    Public int  read(char[] c,int off,int len):读取字符数组的一部分      

    BufferedWriter(Writer in ):构造方法,接受Writer类实例   

    Public String newe():写入一个行分隔符   

    Public int  write(int c):写入单个字符   

    Public int  writer(char[] c,int off,int len):写入字符数组的一部分  

     Public int witer(String s,t off,int len):写入字符数串的一部分         

介绍Java中IO流

原文:http://www.cnblogs.com/soysouce/p/4891784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!