1.IO流的介绍
1.1为什么要学习IO流
- 通过变量,数组,或者集合存储数据
- 都是不能永久化存储,因为数据都是存储在内存中
- 只要代码运行结束,所有数据都会丢失
使用IO流
I:intput,是数据从硬盘进内存的过程,称之为读。
- O:output,是数据从内存到硬盘的过程,称之为写。
IO的数据传输,可以看做是一种数据的流动,按照流动的方向,以内存为参照物,进行读写操作
按照流向区分:
- 输入流:用来读数据
- 输出流:用来写数据
- 按照类型区分:
- 字节流
- 字符流
注意:
FileOutputStream类:
- OutputSteam有很多子类,我们从最简单的一个子类开始
- java.io.FileOutputStream类是文件输出流,用于将数据写出到文件
- 构造方法:
- public FileOutputStream(File file):创建文件输出流以写入由指定的File对象表示的文件
- public FileOutputStream(String name):创建文件输出流以指定的名称写入文件
字节输出流写数据快速入门
字节流写数据的方法
写完数据后,加换行符
- windows : \r\n
- linux : \n
- mac : \r
2.字节流写数据如何实现追加写入呢?
- 通过构造方法 : public FileOutputStream(String name,boolean append)
创建文件输出流以指定的名称写入文件。如果第二个参数为true ,不会清空文件里面的内容
3.字节输入流
3.1字节输入流介绍
字节输入流
- InputStream流:字节输入流的最顶层的类,抽象类
- —- FileInputStream类 : FileInputStream extends InputStream
- 构造方法
- public FileInputStream(File file) : 从file类型的路径中读取数据
- public FileInputStream(String name) : 从字符串路径中读取数据
步骤
- 创建输入流对象
- 读数据
- 释放资源
3.2字节输入流读多个字节
字节输入流写数据快速入门 : 读多个字节
第一部分 : 字节输入流类
InputStream类 : 字节输入流最顶层的类 , 抽象类
—- FileInputStream类 : FileInputStream extends InputStream
第二部分 : 构造方法
public FileInputStream(File file) : 从file类型的路径中读取数据
public FileInputStream(String name) : 从字符串路径中读取数据
第三部分 : 字节输入流步骤
1 创建输入流对象
2 读数据
3 释放资源3.3异常的捕获处理
JDK7版本之前处理方式 : 手动释放资源
JDK7版本优化处理方式 : 自动释放资源
FileInputStream类 :
properties是一个Map体系的集合类
- public class Properties extends Hashtable
- 为什么在IO流部分学习Properties
- Properties中有跟IO相关的方法
当做双列集合使用
Object setProperty(String key, String value) 设置集合的键和值,都是String类型,相当于put方法
void load(InputStream inStream) 以字节流形式 , 把文件中的键值对, 读取到集合中
- void load(Reader reader) 以字符流形式 , 把文件中的键值对, 读取到集合中
- void store(OutputStream out, String comments) 把集合中的键值对,以字节流形式写入文件中 , 参数二为注释
void store(Writer writer, String comments) 把集合中的键值对,以字符流形式写入文件中 , 参数二为注释
5.ResourceBundle加载属性文件
学习目标:能够熟练使用ResourceBundle工具类快速读取属性文件的值
5.1API介绍
java.util.ResourceBundle它是一个抽象类,我们可以使用它的子类PropertyResourceBundle来读取以.properties结尾的配置文件。
5.2内容小结
如果要使用ResourceBundle加载属性文件,属性文件需要放置在哪个位置?
- src的根目录
- 请描述使用ResourceBundle获取属性值的大致步骤是怎样的?
- 1 获取ResourceBundle对象
- 2 通过ResourceBundle类中的getString(key) : 根据键找值