java常用应用程序编程接口(API)——IO流概述及字节流的使用

本文详细介绍了Java中的IO流和File类,包括其分类、输入输出流的功能和方法,如FileInputStream用于字节读取,FileOutputStream用于字节写入。还展示了如何通过字节流实现文件复制的基本操作。
摘要由CSDN通过智能技术生成

前言:

IO流和File是用于把数据存放在硬盘里的工具。File可以把文件存至硬盘,但不能更改里面的数据。通过IO流可以改写硬盘里的数据。整理下学习笔记,打好基础,daydayup!!!

IO流

 I指Input,称为输入流:负责把数据读到内存中去。O指Output,称为输出流:负责写数据出去。

 IO流的分类体系

IO流按照流的方向可分为输入流和输出流;按照数据的最小单位可分为字节流和字符流。字节流适合操作所有类型的文件。字符流只适合操作纯文本文件。

字节输入流:以内存为基准,来自磁盘文件/网络中的数据以字节的形式读入到内存中去的流

字节输出流:以内存为基准,把内存中的数据以字节写出到磁盘文件或者网络中去的流。

字符输入流:一内存为基准,来自磁盘文件/网络中的数据以字符的形式读入到内存中去的流。

字符输出流:以内存为基准,把内存中的数据以字符写出到磁盘文件或者网络介质中去的流。

 

(图片来源:黑马程序员) 

FileInputStream(文件字节输入流)

作用:以内存为基准,可以把磁盘文件中的数据以字节的形式读入到内存中去

输入方法为:

方法说明
public int read()每次读取一个字节返回,如果发现没有数据可读会返回-1
public int read(byte[ ] buffer)每次用一个字节数组去读取数据,返回字节数组读取了多少字节,如果发现没有数据可读会返回-1
public byte[ ] readAllBytes() throw IOException直接将当前字节输入流对应的文件对象的字节数据装到一个字节数组返回

 通过上述方法可以实现单个字节输入,多个字节输入和全部字节输入

1,单个字节输入

 FileInputStream通过构造器取得对象后,通过read方法可以依次调取到字节,当全都调取结束后,将返回-1。示例如下:

 但read默认只能读取一个字节,需要全部读取完,需要重复多行代码。为了优化这一过程你,可以使用while语句循环,进行连续读取。如下

 2,多个字节输入

和单个字节输入不同的是,多个字节输入需要定义一个字节数组。然后在read方法中定义字节变量,操作如下

如果需要连续读取,则需要通过while进行操作。如下:

3,一次读取完全部字节

通过readAllBytes可以取到全部的字节,示例如下

 

FileOutputStream(文件字节输出流)

作用:以内存为基准,把内存中的数据以字节的形式写出到文件中去

输出方法为:

方法说明
public void write (int a)写一个字节出去
public void write (byte[ ] buffer)写一个字节数组出去
public void write (byte[ ] buffer,int pos,int len)写一个字节数组的一部分出去
public void close() throw IOException关闭流

 例:

 案例:

通过字节输出和输入实现文件的复制

思路:指定复制的位置,设定输入的字节数,然后通过输入流写入,通过输出流写出

操作步骤:如下

总结

字节流可以输出一切,图片,视频,文档,本次实验输出的是文档,感兴趣的可以试着输出视频之类的。整理结束,撒花!!!

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值