java输入输出流InputStream/OutputStream

Java的输入输出流是内存与存储设备间数据传输的通道,分为输入流和输出流,按单位分为字节流和字符流,按功能分为节点流和过滤流。InputStream和OutputStream作为抽象类,提供了基本的读写方法。例如,FileInputStream的read()方法用于从文件读取字节,而FileOutputStream的write()方法用于将字节写入文件。通过实例展示了如何使用这两个类进行文件的复制操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念:内存与存储设备之间传输数据的通道

流的分类:

1.按方向:

1.1输入流:将<存储设备>中的内容读入到<内存>中

1.2输出流:将<内存>中的内容写入到<存储设备>中

2按单位:

2.1字节流:以字节为单位,可以读写所有数据

2.2字符流:以字符为单位,只能读写文本数据

3.按功能

3.1节点流:具有实际传输数据的读写功能

3.2过滤流:在节点流的基础之上增强功能

OutputStream中的方法:

InputStream中的方法:

InputStream/OutputStream都为抽象类,都需要子类来new对象

 

FileInputStream:

public int read(byte[] b){}

从流中读取多个字节,将读到内容存到b数组,返回实际读到的字节数;如过达到文件的尾部,则返回-1


//释放资源!
fis.close();
fos.close();
}
}

FileOutputStream:

public void write(byte[] b){}

一次写多个字节,将b数组中所有字节,写入输出流

 

 

案例:从一个设备中输入到内存中来,然后输出到另一个设备

//将指定图片,上传一份到项目里来!
//文件是在存储设备中的---》读到程序中来---->写入到存储设备中


//输入流
FileInputStream fis = new FileInputStream("C:\\Users\\Lenovo\\Desktop\\1570252842407.jpg");
//输出流
FileOutputStream fos = new FileOutputStream("messi.jpg");
//缓冲空间过大过小都容易有小问题
int len = 0;//代表每次读到的字节
while((len = fis.read())!=-1) {//只要不读到-1
fos.write(len);//读多少 写多少
}

评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值