【摘要】:输入/输出流是数据源和数据目标的代表,流可以代表众多不同的数据源和数据目标,例如磁盘文件、设备、其他程序和内存等。此例主要演示通过流对象对磁盘文件进行输入操作的基本方法,使读者能更具体地感受到流这个概念的含义,对流的基本操作有一个初步的认识。
按数据的流向分类可分为输入流和输出流。
输入/输出流是数据源和数据目标的代表,流可以代表众多不同的数据源和数据目标,例如磁盘文件、设备、其他程序和内存等。对程序而言,所有流都可以看作数据序列。既然输入/输出流是数据源和数据目标的代表,在Java中要对数据源进行读操作或者对数据目标进行写操作,那么就要通过输入/输出流进行操作,输入/输出流可以视为程序和数据源/数据目标之间数据序列流动的管道。
程序使用输入流从数据源逐个(以字节或字符为单位)读取数据,使用输出流向数据目标逐个(以字节或字符为单位)写出数据,如图10.1所示。
图10.1 输入/输出流示意图
注意:输入/输出流是以程序为中心划分的,如果数据流入程序,则是输入;如果数据从程序流出,则是输出。
【例10.1】使用文件输入流(FileInputStream)读文件内容,显示在屏幕上。
此例主要演示通过流对象对磁盘文件进行输入操作的基本方法,使读者能更具体地感受到流这个概念的含义,对流的基本操作有一个初步的认识。I/O异常处理故意使用了不太规范的写法,以便与后面规范写法形成对比。
(www.daowen.com)
程序运行结果如图10.2所示。
图10.2 文件输入流读文件运行结果
上面的示例代码为了演示从输入流对象中读取磁盘文件数据过程的细节,调用了5次read()方法来依次读取文件中的'h','i','j','k'字符,并演示了读完数据继续读则会返回-1。在实际编程中,应使用循环读文件,以-1作为循环结束的标志。同时还有对I/O异常进行规范处理。
实践中,较好的写法如例10.2所示。
【例10.2】
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
有关Java程序设计的文章