IO流
文件
文件---->java程序内存 :输入流
java程序内存---->文件 :输出流
创建文件3种方法:
-
new File(String pathname)
-
new File(File parent, String child) //根据父目录文件+子路径构建
-
常用文件方法:getName()获取文件名 getParent()获取文件路径 length()文件大小 exists() 文件是否存在 isFile()是不是一个文件 isDirectory()是不是一个目录 renameTo重命名,不会保留原文件 createNewFile创建新文件
-
常用文件操作:mkdir创建一级目录 mkdirs创建多级目录 delete删除空目录或文件
文件过滤器
FilenameFilter接口:
boolean accept(File dir,String name) dir:当前目录,name:文件名。
FileFilter接口:
boolean accept(File pathname) pathname:文件。
IO流
抽象类
字节流(8bit)
一般都是以Stream结尾,二进制文件
InputStream(抽象类)
字节输入流
-
FileInputStream节点流(底层流)
-
BufferedInputStream缓冲流
-
ObjectInputStream对象流-反序列化:对象的输入,从硬盘到程序内存
OutputStream(抽象类)
字节输出流
-
FileOutputStream节点流(底层流)
-
BufferedOutputStream缓冲流
-
ObjectOutputStream对象流-序列化:对象的输出,从程序内存到硬盘
字符流
一般以Reader/Writer结尾
Reader(抽象类)
字符输入流
-
InputStreamReader转换流
- FileReader节点流(底层流)
-
BufferedReader缓冲流
Writer(抽象类)
字符输出流
-
OutputStreamWriter转换流
-
BufferedWriter缓冲流
- FileWriter节点流(底层流)
-
PrintWriter打印流
流的选择
-
字符流只适用于纯文本文件操作
-
字节流可以操作任何文件
-
数据存储在文本文件,选择文件流File开头
-
数据存储在二进制文件(图片、音视频等)选文件字节流
-
数据存储在对象,选择对象流Object开头
-
节点流(文件流):可以直接从数据源/目的地读写数据
-
处理流(包装流):不能直接连接到数据源或目的地,“处理流的流”
-
缓冲流:处理流的一种,通过创建一个指定字节数组作为缓冲区(长度一般为1024),来提高IO流的读写效率。
-
转换流:处理流的一种,
-
对象流:序列化和反序列化,用来组织和存储数据,对象本身也是数据。
-
序列化:Java对象转换为字节序列的过程
-
反序列化:字节序列恢复为Java对象的过程
-
缓存(cache)与缓冲(buffer)的主要区别
Buffer的核心作用是用来缓冲,缓和冲击(对输出设备的冲击,包括磁盘、打印机、显示器)。比如你每秒要写100次硬盘,对系统冲击很大,浪费了大量时间在忙着处理开始写和结束写这两件事嘛。用个buffer暂存起来,变成每10秒写一次硬盘,对系统的冲击就很小,写入效率高了,日子过得爽了。极大缓和了冲击。
Cache的核心作用是加快取用的速度(加快读取速度,包括CPU读内存、内存读磁盘、用户通过浏览器请求资源)。比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。
简单来说就是buffer偏重于写,而cache偏重于读。
Properties类
配置文件,父类是HashTable
不需要加空格、双引号、分号;
常见方法:load,list,getProperty(key),
该类主要用于读取Java的配置文件

浙公网安备 33010602011771号