IO学习第一天

IO技术的例子:比如我们从网上下载文件到本地就完成了一次IO的操作

将自己的头像上传到网站也可以理解为一次IO的操作

上传下载就是IO的应用

IO分为跟服务器的交流和跟客户的交流

常见的数据源有文件,数据库,网络,有其它电脑的内存,有键盘等等

数据源就是存储数据的地方

IO是input,output的简称,输入输入流这里的流指的是流动的是我们的数据

IO学习第一天

IO学习第一天

IO学习第一天

IO学习第一天

实际上文件不是直接存放到我们的java里面,而是存到我们的硬盘上,而这个硬盘就需要操作系统去操作,所以我们的java程序需要跟操作系统进行交流,当我们的java读完文件的时候,我就可以告诉操作系统你可以释放对文件的资源了。

这里涉及到的流的关闭不是指的在java里面关闭流,而是java通知操作系统你可以释放你那边的资源了。

我们存储对象的过程叫做序列化,把对象还原称之为反序列化


按流向来分

IO学习第一天

按功能来分(间接操作数据源还是直接操作数据源)

IO学习第一天

IO学习第一天

字符集

GBK,UTF-8,UNICODE

在java里面一个汉字两个字节,存储的是unicode编码

假设文件是用utf-8来存的,读的时候也只能utf-8

IO学习第一天

IO学习第一天

对于字符流来说,其底层仍为字节流操作,所以输入流读取文件可以看做是把文件读取成字节,然后字节再转换为字符,这就涉及到两个过程,第一个过程与字节流读取一样,但是第二个过程new InputStreamReader(inputStream)即字节转字符时InputStreamReader()默认是utf-8编码,如果字节的编码不是utf-8,那么转换过程就会出错,所以这里转换编码要和文件编码一致,可以在转换时指定转换的编码new InputStreamReader(inputStream,"gbk");同样,输出流与此相反,生成文件的编码取决于new OutputStreamReader()时的编码,作为中间载体的字符是统一的char,所以只要保证转换时的编码与文件编码一致即可保证无乱码,无需输入流与输出流编码一致。


分享到:


相關文章: