JAVA总结 DAY019 1107

DAY019

一、IO流

1.IO概述
InputStream(输入流)
OutputStream(输出流)
两者都是相对于内存来说

2.流的分类
1、分类的方式有两种:按照功能可以分类,按照流向也可以分类
2、按照功能分类:
字节流:可以直接操作字节的流对象
字符流:可以直接操作字符的流对象
3、按照流向分类:
输入流:其他设备流到内存的流对象
输出流:内存流到其他设备的流对象
4、IO流的体系结构,根据分类,有四种流对象的类型
字节流:
字节输入流:InputStream
字节输出流:OutputStream

字符流:
 	字符输入流:Reader
 	字符输出流:Writer

3.写流要注意的事项
1.流对象都是java.io下
2. 在使用流的时候有很多异常要进行处理
3. 使用完流之后必须关闭资源

二、字节流

1.概述
1、可以直接操作字节信息的流对象
2、根据流向,可以分成字节输入流和字节输出流
3、顶层抽象父类分别是:InputStream 和 OutputStream
4、根据交互设备的不同,有不同的具体子类

2.读取数据: InputStream

  1. 这是一个抽象类是,不能实例化
  2. 是输入字节流的所有类的超类。
  3. 公有的方法:
    public void close()throws IOException 关闭资源
    public int available()throws IOException 返回从该输入流中可以读取(或跳过)的字节数的估计值
    public abstract int read()throws IOException 从输入流读取数据的下一个字节 ,如果达到流的末尾, -1 。 返回值是当前的数据
    public int read(byte[] b)throws IOException 从输入流读取一些字节数,并将它们存储到缓冲区b

3.FileInputStream
1、InputStream的一个具体子类,用于和磁盘上的文件进行交互
2、FileInputStream不仅可以一次读取一个字节,也可以一次读取很多个字节;不仅可以读取纯文本文件,也可以读取图片、视频、音频等非纯文本文件。一切数据在计算机中都是以字节的形式在存储和计算
3、构造方法
public FileInputStream(File file)throws FileNotFoundException file 表示要读取的文件对象
public FileInputStream(String name)throws FileNotFoundException name表示要读取的文件的路径

实例化对象的过程
1.实例化FileInputStream
2.判断这个文件是否存在,(不存在抛异常)
3.把FileInputStream 执行文件

输入流读取文件中的数据的基本步骤:
1.实例化FileInputStream
2.调用其读方法
3.关闭资源

注意事项:
1.byte数组一般是1024倍数
2.读取到数据都缓冲到字符数据里,如果一次读取两个字节,如果只存在一个,打印的数据也是两个字节,把前面的数据会填充出来
3.读取多个字节的返回值是 read(byte[] b) 是读取的字节的有效的个数

read()
1.一个一个字节进行读取
2.读取的数据就是其返回值
3.返回的是具体的数据(是字节)

read(byte[] b)
1.一次性可以读取多个字节
2.读取的数据就存在 数组
3.返回的是读取字节的有效个数
代码示例

public class Demo_1 {
   
//输入流inputStream
	public static void main(String[] args) throws IOException {
   
//		File f = new File("a.txt");
		// 常用的FileInputStream的两种构造方法
		FileInputStream  fis = new FileInputStream(new File("a.txt"));

//		FileInputStream fis2 = new FileInputStream("a.txt");
		

//		System.out.println(fis.read());
//		System.out.println(fis.read());
//		System.out.println(fis.read());
//		
//		System.out.println(fis.read());
		int i ;
		while((i = fis.read())!=-1) {
   
			System.out.println
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值