JAVA中输入输出流的总结——FileInputStream、FileOuputStream、BufferedInputStream等

本文详细介绍了Java中如何使用FileInputStream和FileOutputStream进行文件的读写操作,包括如何实例化对象、读取和写入数据,以及如何利用缓冲流提升效率。通过示例代码展示了文件复制的过程,从基本的读写操作到使用BufferedInputStream和BufferedOutputStream进行缓冲,以提高文件复制速度。
摘要由CSDN通过智能技术生成

这里总结从外存读取数据到内存以及将数据从内存写到外存中。

对于内存和外存的理解,我们可以简单的理解为容器,即外存是一个容器,内存又是另外一个容器。那又怎样把放在外存这个容器内的数据读取到内存这个容器以及怎么把内存这个容器里的数据存到外存中呢?在Java中提供了输入输出相关的类,这些类在java.io包中,java中将输入输出抽象称为流,就好像水管,将两个容器连接起来。将数据从外存中读取到内存中的称为输入流,将数据从内存写入外存中的称为输出流。在次以文件输入流和文件输出流为例说明数据的读取和写入的操作。

查阅API文档可知,文件输入流FileInputStream只有一个构造器FilterInputStream(InputStream in),它传入一个InputStream类型的参数。知道了构造方法,就可以实例化一个FileInputStream类的对象。要将数据从硬盘上读取到内存中,首先要定义一个FileTest类,再定义一个方法readFile(),给该方法传入一个要读取某个文件路径的字符串形参,最后返回一个字符串值。在方法中首先需要一个FileInputStream类的对象,所以要实例化一个FileInputStream类的对象:java.io.FileInputStream fis = new java.io.FileInputStream(path);在实例化对象时会提示有异常错误,这里先不讨论异常机制,就按固定的格式:try{   }catch(Exception ct){ct.printStackTrace();}处理就行了。创建对象之后就可以用该类的方法对数据读取了。首先要读取文件的长度,可以用方法available(),然后读取文件中的数据,可以用read()读取,该方法只能一个字节一个字节的读取数据。最后要实例化一个byte数组,它的作用是将读取到的数据保存到数组中,还需要一个whlie循环将所有数据读取到数组中,还需要注意的是read()方法当读取完最后一个字节,在读取一遍时,这时返回的结果是-1。最后读取完之后别忘了用close()方法将输入流关闭。具体代码如下:

/**

* 读入给定路径文件的数据

* @param path:给定的路径

* @return:返回字符串类型的数据

*/

public String readFile(String path){

 

try{

//创建文件输入流对象

java.io.FileInputStream fis = new java.io.FileInputStream(path);

 

//获取文件的长度

int len = fis.available();

 

//根据文件的长度创建一个字节数组,保存从文件读取到的数据

byte[] bt = new byte[len];

 

 

//读入一个字节

int bj = fis.read();

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值