我的java笔记,期待与您交流!
IO也许学习了好久了,今天依旧把java基础的IO这块笔记给做一下.
废话不多说现在开始做笔记 .
一:先来说说一下什么是IO流呢?
IO流就是可以写入,输出字节或者字符序列的对象 ,说白了这东西是用来进行持久化数据存储的
,以前我们学的集合也是用来存储东西的,但是集合呢是把数据方在内存中不能将数据存入到文本文件中进行数据持久化存储.
二:IO流的分类:
按流向分:
输入:输入流
输出:输出流
按数据类型分:
字节流:
字节输入流和字符输入流
字符流:
字符输入流和字符输出流
三:先说一下字节输入输出流:
字节输入流的基类是InputStream,字节输出流的基类是OutputStream,但是我们用的时候一般不会直接用他俩,而是用他们的子类:FileInputStream和FileOutputStream
下面就以几行简单的代码来说明一下他俩的基本用法:
其实这里有异常,在main方法中本不应该将异常再继续抛出,但是呢我只是演示他们的用法,所以我就直接抛出,不去try..catch捕获处理了
如上,只是演示一下基本用法,所以异常就不去处理直接抛出了.
四:再说一下字符流:
字符流底层还是字节流,但是字节流可以一行一行的读取文本内容,效率更高一些,而字节流虽然效率没有字符流高,但是字节流可以适用的范围更广一些,比如一些记事本打不开的文件,用字符流是不行的,但是却可以用字节流
字符输入流的基类是Reader,字符输出流的基类是Writer,但是他俩我们依旧不常用,而是直接使用他俩的子类:FileReader和FileWriter.
下面就以几行简单的代码演示一下:还是说一下write方法的异常本应该捕获处理但是这里为了方便就直接抛出了.
但是有时候遇到大文件的时候我们用一般的字节流或者字符流进行数据的传输会显得效率底下,为此JAVA API中有缓冲流,对于字节流而言我们可以使用BufferedInputStream和BufferedOutputStream这两个缓冲流,但是要注意api告诉我们是他们俩接收的都是字节流
我把平时写的代码贴出来演示一下:这里依旧是为了演示把异常抛出不去捕获处理它
对于字符流他们的缓冲流是BufferedReader和BufferedWriter,也要注意一下的是api告诉我们他俩的接收的对象是字符流对象即Reader和Writer或者他们的子类
下面继续简单演示一下他们的基本用法:为了方便演示异常依旧抛出不去处理.