java io流基础用法

一:io流的概念


io流是存储和读取数据的解决方案,用于读写文件中的数据(可以读写文件或网络中的数据)。
二: io流的分类
输出流:程序 ——》文件
输入流: 文件——》程序
字节流:可以操作所有类型的文件
字符流: 只能操作纯文本文件


三:字节流:
FileInputStream:操作本地文件的字节输入流(把本地文件的数据写到程序中)
FileOutputStream:操作本地文件的字节输出流(把程序中的数据写到本地文件中)
每次使用完之后释放资源(.close()) 


在输出流中如果本地没有相关文件,程序运行之后会自动新建相关的文件,但是在输入流中没有相关文件则会报错。

FileOutputStream(字节输出流):在相关的.write()中可以有三种书写方式。
也可以通过数组的形式输出字符串,如果有多个字符串同时写入需要换行
windows: \r\n
linux: \n
mac: \r  
在输出字符串时书写 fos.getBytes();
FileIntputStream(字节输入流) : 读入时用到.read(),其他与输出流一致,一次读入一个字节,读出来的是在ascii上的对应的数字,读到文件末尾read方法返回-1.


在读入的文件中有多个字节时要用到循环读入while(fis.read()!=-1) 可以把文件中的全部读完(字节流视频 文件都能读入和输出)
四:java中的编码和解码:

为了数据安全,通常用编码和解码来保证数据的安全性,编码和解码的时候不一致时会产生乱码的情况(例如编码的时候用UTF-8解码的时候用GBK) 如下图:


五:字符流:

字符流=字节流+字符集。

     输入流:一次读取一个字节,如果时汉字时一次读入多个字节。

输出流(FileReader):底层会把数据按照相应的编码方式进行编码在变成字节写入文件中。

大部分的字符集都只是作用与纯文本文件。

输入流:FileReader 一般在while内使用(因为一般时多个字节) 在读入的时候如果有汉字在输出的时候用(char)来强转。

在进行读入的时候可以用数组来进行读取,数组的长度即为每次读取的长度 如下图:

输出流(FileWriter): 

如果已有文件则会覆盖文件原先的内容,如果没有则会新建一个文件

 细节:如果write中是整数的话实际上写入本地文件的是相对应的字符集上的字符。

            每次用完都要释放资源

六:缓冲流(把基本流包装成高级流,提高读取或写出数据的性能)

字节缓冲输入流(ButteredInputStream):

字节缓冲输出流(BufferedOutputStream);

用法如下所示:

在缓冲流中一次读取多个字节的方式

七 转换流:

也是一种高级流用包装基本流(是字符流和字节流之间的桥梁)

基本用法:

可以让字节流拥有字符流的作用。

本人也是刚入门不久,后续也会推出序列化流和反序列化流,以及打印流和压缩流。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值