首页 > 编程语言 > 详细

Java基础—IO流

时间:2015-11-23 18:51:25      阅读:328      评论:0      收藏:0      [点我收藏+]

第一讲   IO概述 

1. 流的概念

      IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式,我们可以把IO流抽象的当作一根管道,而

数据的传输就好比流水,在管道中我们能更加轻松的实现数据的传输。

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

2. 流的分类

   ① 按流向分,可分为: 输入流和输出流

        注意:输入和输出的参照物是本设备,向里传输数据称为输入,向外传输数据称为输出,所以程序可以从输入流中读取数据,输出流中输入数据

   ② 按操作数据分为两种: 字节流和字符流

        字节流以InputStream和OutputStream为后缀,表示操作的最小数据单元为字节

        字符流以Reader和Writer为后缀,表示操作的最小数据单元为字符

        注意: 字符流是对字节流进行了封装,方便操作。在最底层,所有的输入输出都是字节形式的。

   ③ 按功能分类,可分为:节点流和处理流

        节点流:可以直接从或向一个特定的地方(节点)读写数据,常用节点流有:

    技术分享

          处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。 如BufferedReader。处理流的构造方法总是要带一个 其他的流对象做参数。一个流对象经过 其他流的多次包装,称为流的链接。相当与在一个管道上接了另一个管道,以实现更通用的功能

3.  IO流的常用基类:

        1)字节流的抽象基流:InputStream和OutputStream

        2)字符流的抽象基流:Reader和Writer

        注:此四个类派生出来的子类名称都是以父类名作为子类名的后缀,以前缀为其功能;如InputStream子类FileInputStream;Reader子类FileReader

 

 第二讲  字符流

1. 简述

   1、字符流中的对象融合了编码表。使用的是默认的编码,即当前系统的编码。

   2、字符流只用于处理文字数据,而字节流可以处理媒体数据。

   3、既然IO流是用于操作数据的,那么数据的最常见体现形式是文件。查看API,找到一个专门用于操作文件的Writer子类对象:FileWriter。后缀是父类名。前

缀名是流对象的功能。该流对象一被初始化,就必须有被操作的文件存在。

2. 字符流的读写(以FileWriter和FileReader为例)

  • 写入字符流步骤   

     a、创建一个FileWriter对象,该对象一被初始化,就必须要明确被操作的文件。且该目录下如果已有同名文件,则同名文件将被覆盖。其实该步就是在明确数         据要存放的目的地。

     b、调用write(String s)方法,将字符串写入到流中。

     c、调用flush()方法,刷新该流的缓冲,将数据刷新到目的地中。

     d、调用close()方法,关闭流资源。但是关闭前会刷新一次内部的缓冲数据,并将数据刷新到目的地中。

     注意:① close()和flush()区别:

              close()和flush()都能刷新流中的缓存,但是flush()刷新后流可以继续使用,但是close()关闭流之后,不能在写入字符串

           ② 文件的数据的续写是通过构造函数 FileWriter(Strings,boolean append),在创建对象时,传递一个true参数,代表不覆盖已有的文件。并在

              已有文件的末尾处进行数据续写,默认覆盖

           

   例子1: 在硬盘上创建一个文件,并读入一些数据           

 1 import java.io.FileWriter;
 2 import java.io.IOException;
 3 
 4 /*
 5  *  在硬盘上创建一个文件,并读入一些数据
 6  */
 7 public class FileWriterDemo {
 8     public static void main(String[] args) {
 9         //1. 创建一个FileWriter文件流对象,该对象一初始化就要明确操作的文件
10         //该文件被创建到指定目录下,如果该目录下已经有同名文件,则被覆盖
11         //如果需要所写文件追加到已有文件后面,则使用构造方法
12         //FileWriter(String fileName, boolean append)
13         FileWriter fw = null;
14         try {
15             fw = new FileWriter("F:/javaee/text.txt");
16             //2. 调用write方法,将字符写入流中
17             fw.write("abcdefg");
18             //3. 刷新缓存,将流中的数据传输到目的地文件中
19             //fw.flush();
21         } catch (IOException e) {
22             e.printStackTrace();
23         }finally{
24             try {
25                 fw.close();  //4.记得在finally代码块中关闭流资源
26             } catch (IOException e) {
27                 e.printStackTrace();
28             }
29         }
30     }
31 }

 

 

 

 

    

Java基础—IO流

原文:http://www.cnblogs.com/chenjinsen/p/4988998.html

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