JAVA SE——流

来源:互联网 发布:node es6 编辑:程序博客网 时间:2024/05/30 23:31

流(I/O input/output 读/写)


1.      主要指两个平台之间数据的流动,而JAVA将不同的输入/输出源抽象表述为“流”,流代表着从起源到接收的有效数据。

2.      流的分类主要为三种:文件流(重要)、对象流、网络流。

(1)      文件流

读取文件流    /    写入文件流

字节型文件输入流                       字节型文件输出流

FileInputStream                              FileOutputStream    (8位字节)

字符型文件输入流                       字符型文件输出流

FileReader                                        FileWriter                   (16位字符)

文件(File类)

File类表示文件和目录路径名的抽象表达形式,并不是真实的文件,而是内存中对文件的映射。构造器中需要传递一个有效路径的字符串(URL)

主要方法:

canRead——是否可读

canWriter——是否可写

isHidden——是否是一个隐藏文件

lastModified——文件最近一次修改时间

setLastModified——设置文件最近一次修改时间

lenth——文件内容长度

getParent获得上一层文件目录

getName——获得文件名

getAbsolutePath——获得文件绝对路径

delete——删除文件或是空的文件夹

注意:“d:”后加“//”表示盘符下的根目录,不加则表示当前工程下的目录

(2)      对象流:

对象流的主要作用是可将对象存入文件,实现对象持久化,在使用时注意安全化。

(3)      缓冲流:使用缓冲区比没有使用缓冲区的效率更好,因为每趟磁盘操作逗比内存操作花费更多时间。所以用缓冲流对一般流进行封装,这样可以暂时存出一堆数据,直到封装流“满”的时候在实际写入磁盘,这样可以减少对磁盘操作的次数,主要封装流为BufferedWriter、BufferedReader。

3.      递归算法

递归算法简而言之是一个终止条件严谨的循环调用自身的思想,在通过流对文件的复制,遍历,剪切等操作时,这种思想可以大大减少代码的数量。如图所示。

4.      我对流的理解

流就好比是一个从红色装水的桶向蓝色的桶里不断地盛水、倒水的过程,流就好比是一个竹筒,先从红色的桶里舀水(读取)再送到蓝色的桶边(传递),最后倒进蓝色的桶(刷新流管道,写入)。缓冲流就好比是一个灌满了竹筒的水风车从一边不断地舀水,所有的竹筒都装满水后再倒入另一边。

1 0