2020.1.28 12:08 此时此刻,我正在通过视频的方式学习java SE 的IO流,在此之前有(知识点:异常、File、递归)作为铺垫,用到了,我再详细的将这些知识点作为一个专门的记录,因为自己是用这样的复习方式来达到一个找到工作的标准,所以要快。博客没有从java的刚入门开始写,在此表示最最最真诚的歉意,而且在未来的且最接近今天的那一天里,将所有的自己所学的东西和学习java的方式完完整整的记录到博客里。 铺垫就写到这里,我要开始学习IO流啦。
一、IO流的概述 首先学习IO流肯定是有其作用的,这就引出第一点:IO流是用来进行设备间的数据传输问题; 那么java是一个面向对象的语言,IO流在哪个包下,又在哪个类里,都有什么方法呢,方法的名字,参数,以及返回值又是什么呢?又引出这么多问题。通过这样的一个思路,引出第二点:Java用于操作流的对象都在IO包中 最后一个数据从一端到另一端,从一个文件到另外一个文件是通过什么方式,什么技术,(说到这里,说一下解决自己学不懂的一个问题:就是命名的问题,这还是自己在高中的时候遇到的问题,以java来说,为什么起名叫java呢?为什么叫方法呢?这一系列的问题把自己都给问懵了,然后就这太难了,学不懂,完犊子了。解决:这只是当一个新的技术出现在人们的认知里的时候人们对于这种新事物的称呼。)由此引出第三点:Java对数据的操作是通过流的方式,流就是对于这种技术的称呼。最后总结IO流的概述有以下三点:
1.IO流是用来进行设备间的数据传输问题;
2.Java用于操作流的对象都在IO包中;
3.Java对数据的操作是通过流的方式;
思路以及记忆方式在上面。
二、IO流的分类
1.按流向分:(1)输入流;(2)输出流【说到这里讲一下自己第一次学的时候是怎么区分输入流和输出流的:其实第一次学IO流的时候输入流,输出流,我就属于有时候站在文件的角度,有时候站在java程序的角度,站在文件的角度的时候:java程序获取资源是输出,java程序增加,修改资源的时候是输入;站在java程序的角度的时候:则相反,刚开始的时候,站在不同的角度看问题的时候,自己并不知觉,有时候站在java程序的角度,有时候站在文件的角度,这就难办了,傻傻分不清的情况伴随我的时候我是死记硬背的,不过死记硬背并没有给我区分输入,输出流带来一些改观,反而让我觉得输入输出流真的好难。解决:后来看到特朗普当选美国总统的一个当选条件是:美国第一! 那时候我才恍然大悟,美国是一个大多数以自己为中心的群体(这只是我当时的想法,不涉及人身攻击),而后想到java语言就是美国的东西,进而引入到输入流,输出流以java程序为中心的角度,资源从文件流向java程序是读取(int);资源从java程序流向文件是输出(out),总结:这是一个看问题的角度的问题,解决了以java程序还是以文件为中心来判断输入,输出流,就解决了自己输入,输出傻傻分不清的状况。】
2.按数据类型分:
(1)字节流(用记事本打开文件内容,看不懂的就是字节);
(2)字符流(用记事本打开文件内容,能看懂的就是字符)
那为什么会提供俩种流呢? 首先出现的是字节流,后来为了方便操作我们文本数据,java就提供了字符流。
那我们该如何选择使用哪种流呢? 用记事本打开所要错做的文件内容,如果能够看懂就用字符流,看不懂的用字节流。 什么都不知道用字节流(字节流是万能的)。
3.IO流的常用基类(父类)
字节流的抽象基类:InputStream ,OutputStream
字符流的抽象基类:Reader , Writer
4.IO流分类总结IO流的分类:
流向:
输入流 读取数据
输出流 写出数据
数据类型:
字节流
字节输入流 读取数据 InputStream
字节输出流 写出数据 OutputStream
字符流
字符输入流 读取数据 Reader
字符输出流 写出数据 Writer