java字节流读取文件(java编写图形界面程序)
在计算机中,无论是文本、图片、音频还是视频,所有文件都是以二进制(字节)形式存在的,i/o流中针对字节的输入/输出提供了一系列的流,统称为字节流。
字节流是程序中最常用的流,根据数据的传输方向可将其分为字节输入流和字节输出流。在jdk中,提供了两个抽象类inputstream和outputstream,它们是字节流的*父类,所有的字节输入流都继承自inputstream,所有的字节输出流都继承自outputstream。
为了方便理解,可以把inputstream和outputstream比作两根“水管”,如图所示。
图中,inputstream被看成一个输入管道,outputstream被看成一个输出管道,数据通过inputstream从源设备输入到程序,通过outputstream从程序输出到目标设备,从而实现数据的传输。由此可见,i/o流中的输入/输出都是相对于程序而言的。
在jdk中,inputstream和 outputstream提供了一系列与读写数据相关的方法,接下来先来了解一下inputstream的常用方法,如表所示。
inputstream的常用方法:
表中列举了inputstream的四个常用方法。前三个read()方法都是用来读数据的,其中,第一个read()方法是从输入流中逐个读入字节,而第二个和第三个read()方法则将若干字节以字节数组的形式一次性读入,从而提高读数据的效率。
在进行i/o流操作时,当前i/o流会占用一定的内存,由于系统资源宝贵,因此,在i/o操作结束后,应该调用close()方法关闭流,从而释放当前i/o流所占的系统资源。
与inputstream对应的是outputstream。outputstream是用于写数据的,因此outputstream提供了一些与写数据有关的方法。
outputstream的常用方法:
表中,列举了outputstream类的五个常用方法。前三个是重载的write()方法,都用于向输出流写入字节,其中,第一个方法逐个写入字节,后两个方法是将若干个字节以字节数组的形式一次性写入,从而提高写数据的效率。
flush()方法用来将当前输出流缓冲区(通常是字节数组)中的数据强制写入目标设备,此过程称为刷新。close()方法是用来关闭流并释放与当前io流相关的系统资源。
inputstream和outputstream这两个类虽然提供了一系列和读写数据有关的方法,但是这两个类是抽象类,不能被实例化,因此,针对不同的功能,inputstream和outputstream提供了不同的子类,这些子类形成了一个体系结构,如下图所示。
inputstream的子类:
outputstream的子类:
从图中可以看出,inputstream和outputstream的子类有很多是大致对应的,比如,bytearrayinputstream和bytearrayoutputstream、fileinputstream和fileoutputstream等。
上一篇: 适合喝茶吃的小零食有哪些
推荐阅读
-
java创建数组的几种方式(java编写图形界面程序)
-
java创建数组的几种方式(java编写图形界面程序)
-
编写一个JAVA程序-遍历日志文件
-
编写图形界面下的Java Swing程序,接受用户输入的两个数据为上下限,然后输出上、下限之间的所有素数。(结果部分每行显示10个数据)
-
java字节流读取文件(java编写图形界面程序)
-
编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
-
Java基础知识(JDK、JRE、JVM; 编写java小程序之文件命名、编译javac、运行java)
-
详解Java程序读取properties配置文件的方法
-
java小练习 : 编写一个程序,在命令行中以树状结构展现特定的文件及其子文件(夹)
-
java读取文件程序打jar包后出现乱码