【博学谷学习记录】超强总结,用心分享|【Java程序基础】I/O输入、输出流概述

        在变量、数组、对象中储存的数据是暂时存在的,在程序结束之后它们就会消失。为了能够永久地保存程序创建的数据,需要将其保存在磁盘文件中,这样就可以在其他程序中使用他们

        本次简单总结Java的I/O输入流和输出流

目录

流的概念

输入流

输出流


流的概念

        流是一组有序的数据序列,根据操作的类型,可以分为输入流和输出流两种。I/O(Input/Output)流提供了一条通道程序,可以使用这条通道把源中的字节序列送到目的地。输入流是程序从指向源的输入流中读取源中的数据,可以是文件、网络、压缩包等。输出流的指向是数据要到达的目的地,程序通过想输出流中写入数据把信息传递到目的地。

输入流

        InputStream类是字节输入流的抽象类,是所有字节输入流的父类,该类中所有方法遇到错误时都会引发IOException异常。下面是对该类中的一些方法的简要说明。

read()从输入流中读取的下一个字节。返回0~255范围内的int字节值。如果因为已经到达流末尾而没有可用的字节,则返回值为-1
read(byte[] b)从输入流中读入一定长度的字节,并以整数的形式返回字节数
mark(int readlimit)在输入流的当前位置放置一个标记,readlimit参数告知此输入流标记的位置失效之前允许读取的字节数
reset()将输入指针返回到当前所做的标记处
skip(long n)跳过输入流上的n个字节并返回实际跳过的字节数
markSupported()如果当前流文件支持mark()/reset()操作就返回ture
close关闭此输入流并释放与该流关联的所有系统资源

        并不是所有InputStream类的子类都支持InputStream中定义的所有方法,如skip()、mark()、reset()等方法只对某些子类有用。

小结:

Java标准库的java.io.InputStream定义了所有输入流的超类:

  • FileInputStream实现了文件流输入;
  • ByteArrayInputStream在内存中模拟一个字节流输入。

总是使用try(resource)来保证InputStream正确关闭。

输出流

        OutputStream是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。此类中多有的方法均返回void,在遇到错误时会引发IOException异常。

write(int b)将指定字节写入此输出流
write(byte[] b)将b个字节从指定的byte流数组写入此输出流
write(byte[] b,int off,int len)将指定byte数组中偏移量off开始的len个字节写入到此输出流
flush()彻底完成输出并清空缓存区
close()关闭输出流

小结:

Java标准库的java.io.OutputStream定义了所有输出流的超类:

  • FileOutputStream实现了文件流输出;

  • ByteArrayOutputStream在内存中模拟一个字节流输出。

某些情况下需要手动调用OutputStreamflush()方法来强制输出缓冲区。

总是使用try(resource)来保证OutputStream正确关闭。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值