IO

JAVA开发必须重视的一个方面就是IO流,文件操作和保存读取的操作都是采用IO流来处理。

话不多说,先上图


想必你已经很眼熟了,毕竟这张图转来转去的

如图,IO流分两大部分,一个是除理音频视频图片等文件的字节流,因为它是单个字节处理的;另一个是除理文字的字符流,因为它是双字节处理的,符合Unicode的格式;

字节流和字符流很好区分,字节流尾缀都是Strea,而字符流尾缀是Reader和Wirter

首先先了解File类。File类是文件和目录路径名的抽象表示形式(来自API)。它有4种构造方法,分别是(Flie,string),(string),(String,String),(URI)。我们通常使用的是第二个通过路径来构建是file对象。

File中的方法:

boolean exists()  判断这个路径是否存在

boolean isFile()   判断这个路径得出的是不是一个文件

boolean isDirectory ()  判断这个路径得出的是不是一个文件夹

boolean delete()  删除这个路径的文件或文件夹(要是空文件夹才直接删除,如果不是要先删除文件夹里面的文件和文件夹)

boolean mkdir()  用路径来创建一个文件夹,记住路径要加文件夹名

string getAbsolutePath()  获得这个文件或文件夹的绝对路径(在计算机中的全路径)

String getPath()    获得相对路径(相对于当前文件所处的路径)

File[]  listFiles()    获得这个文件夹下所有的文件和文件夹


字节流和字符流都分为输入流和输出流

比如你要在文档中写入中文或英文,那么你需要用到wrtier,如果你要读取中文或英文需要用到Reader。而如果你需要写入或读取二进制内容就要用到stream。

Reader中的read()方法都是读取单个字符,这样读一个写一个效率非常低,所以要使用read(char[])方法来一次读取多个字符,用read(char[],int ,int)来读取从指定位置开始的规定数量的字符。当然最好是用BufferedReader全部读取后再操作。InputStreamReader的构造方法可以指定字符集,可以解决乱码问题。

Writer中的writer方法和read相似,一个是读一个是写而已,但writer多了可以直接写string的方法

字节流中输入流的read()和Reader中的read()基本一致,输出流中的writer()和输出流中的writer()基本一致(没有对string的操作)。

字节流中常常用File来拆箱和装箱,灵活运用各个字节流非常重要。

最后最最重要的是就是关闭IO流,不论是哪种流,都必须在final中关闭


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值