2021-05-18

文件与IO流

一.File类(文件)
File类是java.io包下代表与平台无关的文件和目录的类。在程序中操作文件和目录,都可以通过File
类来完成。需要注意的是,不管是文件还是目录都是使用File来操作的,File能新建、删除、重命名文件
和目录,但是File不能访问文件内容本身,File类名很有欺骗性,初学者会误认为是File对象只是一个 文件,但它也可能是一个目录。 如果需要访问文件内容本身,则需要使用输入/输出流。
二.IO流
Java的IO流是实现输入/输出的基础,它可以方便地实现数据的输入/输出操作,在Java中把不同的/
输出源(键盘、文件、网络连接等)抽象表述为“流”(stream),通过流的方式允许Java程序使用相同 的方式来访问不同的输入输出源。
“流”是一组有序的数据序列。“流”分为两种形 式:输入流和输出流,从数据源中读取数据是输入流,将数据写入到目的地是输出流。 数据输入的数据源有多种形式,如文件、网络和键盘等,键盘是默认的标准输入设 备。而数据输出的目的地也有多种形式,如文件、网络和控制台,控制台是默认的标准输出设备。
以CPU为中心从外部设备读取数据到内存,进而再读入到CPU,这是输入(Input,缩写 I)过程;将内存中的数据写入到外部设备,这是输出(Output,缩写O)过程。所以输入输出简 称为I/O。
如图所示:
在这里插入图片描述

三.流的分类
1.输入流和输出流
按照流的流向来分,可以分为输入流和输出流。输入、输出都是从程序运行所在内存的角度来划分 的。
.输入流:只能从中读取数据,而不能向其写入数据。由InputStream和Reader作为基类 ,
InputStream和Reader是所有输入流的抽象基类,它们的方法是所有输入流都可使用的方法。
InputStream和Reader的方法基本一致,只是InputStream读取的是字节,使用的参数是byte数组
(byte[]),而Reader读取的是字符,使用的参数是char数组(char[])
.输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为类 ,OutputStream和Write是所有输出流的基类,它们的方法也是非常类似的,它们的方法是所有输出流都 可使用的方法。
2.字节流和字符流
字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同。
字节流操作的数据单元是8位的字节,由InputStream和OutputStream作为基类。InputStream(抽象类)和OutputStream(抽象类) 是字节输入流的根类,它定义了很多方法,影响着字节输入流的行为
字符流操作的数据单元是16位的字符,由 Reader和 Writer作为基类。Reader(抽象类)和Writer(抽象类)是字节输入流的根类,它定义了很多方法,影响着字节输入流的行为
注意:
1.方法都声明了抛出IOException,因此使用时要注意处理异常。
2.流操作完毕后必须关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值