2023.2.22

IO流技术

1.什么是IO

输入(Input)指的是:可以让程序从外部系统获得数据(核心含义是 ,读取外部数据)。

输出(Output)指的是:程序输出数据给外部系统从而可以操作外部 系统(核心含义是,将数据写出到外部系统)。

2使用最新的try-with-resource简化

1 public class Test3 {

2    public static void main(String[] args) {

3        //使用try-with-resource方式关闭资源。

4        //try中打开资源,不需要在代码中添加

finally块关闭资源。

5        try(FileInputStream fis = new

FileInputStream("d:/a.txt");){

6            StringBuilder sb = new

StringBuilder();

7            int temp=0;

8            while((temp = fis.read()) != -1)

{

9                sb.append((char) temp);

10

11           }

12            System.out.println(sb);

13       }catch(Exception e){

14            e.printStackTrace();

15       }

16   }

3.按流的方向分类:

输入流:数据流向是数据源到程序(以InputStreamReader结尾的流)。

输出流:数据流向是程序到目的地(以OutPutStreamWriter结尾的流)。

4.按处理的数据单元分类:

字节流:以字节为单位获取数据,命名上以Stream结尾的流一般是字节流,如FileInputStream

FileOutputStream

字符流:以字符为单位获取数据,命名上以Reader/Writer结尾的流一般是字符流,如

FileReaderFileWriter

5按处理对象不同分类:

节点流:可以直接从数据源或目的地读写数据,如FileInputStreamFileReader

DataInputStream等。

处理流:不直接连接到数据源或目的地,是处理流的流。通过对其他流的处理提高程序的性能,

BufferedInputStreamBufferedReader等。处理流也叫包装流。

6.总结:

1

InputStream/OutputStream

字节流的抽象类。

2

Reader/Writer

字符流的抽象类。

3

FileInputStream/FileOutputStream

节点流:以字节为单位直接操作文件

144

ByteArrayInputStream/ByteArrayOutputStream

节点流:以字节为单位直接操作字节数组对象

5

ObjectInputStream/ObjectOutputStream

处理流:以字节为单位直接操作对象

6

DataInputStream/DataOutputStream

处理流:以字节为单位直接操作基本数据类型与字符串类型

7

FileReader/FileWriter

节点流:以字符为单位直接操作文本文件(注意:只能读写文

本文件)。

8

BufferedReader/BufferedWriter

处理流:将Reader/Writer对象进行包装,增加缓存功能,提高

读写效率。

9

BufferedInputStream/BufferedOutputStream

处理流:将InputStream/OutputStream对象进行包装,增加缓

存功能,提高读写效率

10

InputStreamReader/OutputStreamWriter

处理流:将字节流对象转化成字符流对象。

11

PrintStream

处理流:将OutputStream进行包装,可以方便地输出字符,更

加灵活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值