Java基础之IO流

2020/7/8

 

一、概念

I/OInput/Output的缩写,是用于处理设备之间数据传输的技术。在Java程序中,对于数据的输入输出操作以“流(stream)”的方式进行。java.io包下提供了各种“流”类和接口,用以获取不同种类的数据,并通过标准的方法输入或输出数据。

 

 

二、分类

 

1.   输入流 :磁盘 -----> 内存     InputStream(字节流)、Reader(字符流)

 

   输出流 :内存 -----> 磁盘     Output Stream(字节流)、Writer(字符流)

 

 

2.   字节流 8bit,用于操作字节文件,包括 .mp3.mp4.rmvb.jpg.doc.ppt.avi  

 

   字符流 16bit ,用于操作普通文本文件,包括 .txt.java.c.cpp

 

 

3.   节点流 FileInputStream/FileOutputStream/FileReader/FileWriter

 

   处理流 :非节点流(缓冲流/转换流)

 

节点流看作一根水管,处理流就是水管外面包的一层。处理流在已经存在的流(节点流或处理流)之上,通过对数据的处理提供更强大的读写功能。

分类

字节输入流

字节输出流

字符输入流

字符输出流

抽象基类

InputStream

OutputStream

Reader

Writer

访问文件

(节点流)

FileInputStream

FileOutputStream

FileReader

FileWriter

缓冲流

(处理流)

BufferedInputStream

BufferedOutputStream

BufferedReader

BufferedWriter

转换流

 

 

InputStreamReader

OutputStreamWriter

对象流

ObjectInputStream

ObjectOutputStream

 

 

 

 

三、方法

1.输入流

 

2.输出流

 

四、步骤

1.  FileReader

(1)实例化File类对象,指明需要操作的文件(文件必须要在磁盘真实存在,否则报异常)。

    File file = new File(“hello.txt”);

(2)创建流对象,将文件加载进流。

    FileReader fr = new FileReader( file );

(3)数据读入,创建一个临时存放数据的数组。

char[] cbuf = new char[5];

int len;

while((len = fr.read(cbuf)) != -1){    

      for(int i = 0;i < len;i++){

          System.out.print(cbuf[i]);

               } }

(4)关闭资源

fr.close();

 

  1. FileWriter

(1)创建File类对象

(2)创建输入输出流对象

(3)数据的读入和写出操作

(4)关闭流资源

 

对于字节流FileInputStreamFileOutputStream和上面的过程一样。

 

五、缓冲流(处理流的一种)

1.缓冲流作用

套接在已有的流之上。

提高流的读取、写入的速度。原因:内部提供了一个缓冲区。

2.步骤

(1)造文件

(2)造节点流

(3)造缓冲流

(4)读取、写入

(5)关闭外层流

(6)关闭内存流(可以省略,因为关闭外层流的同时,内层流会自动关闭)

3.代码示例

 

 

 

posted @ 2020-07-08 17:00  脆落花漾  阅读(173)  评论(0编辑  收藏  举报