1.标准的输入流
1.标准的输入流 System.in ==> public static final InputStream in 默认是关联键盘
public static void setIn(InputStream in) 重新分配“标准”输入流(改变其默认关联的方式)
2.标准的输出流
1.标准的输出流 System.out ==>public static final PrintStream out 默认关联的是控制台
public static void setOut(PrintStream out) 重新分配“标准”输出流(改变其默认关联的方式)
3.打印流
1.打印流 PrintStream PrintWriter 在控制台进行打印输出
或者是改变其规则 向指定的文件中写入内容
2.PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式
3.获取PrintStream流对象
(1) System.out
(2) 通过构造方法进行获取
4.常规的构造方法
方法的名称 | 方法的说明 |
public PrintStream(File file) | 创建具有指定文件且不带自动行刷新的新打印流 |
public PrintStream(OutputStream out) | 创建新的打印流。此流将不会自动刷新 |
public PrintStream(OutputStream out, boolean autoFlush) | 创建新的打印流 可以进行自动刷新 |
5.提供了一些打印各种数据类型的重载的方法
public void print() ==>打印 不换行
public void println() ==>打印 换行
public void write()字节 ==>写入到文件中
6.PrintWriter 向文本输出流打印对象的格式化表示形式。此类实现在 PrintStream 中的所有 print 方法。它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。
7.常用的构造方法
方法的名称 | 方法的说明 |
public PrintWriter(File file) | 使用指定文件创建不具有自动行刷新的新 PrintWriter |
public PrintWriter(OutputStream out) | 根据现有的 OutputStream 创建不带自动行刷新的新 PrintWriter |
public PrintWriter(OutputStream out, boolean autoFlush) | 通过现有的 OutputStream 创建新的 PrintWriter |
public PrintWriter(Writer out) | 创建不带自动行刷新的新 PrintWriter |
8.常规的方法
public void print() ==>打印 不换行
public void println() ==>打印 换行
public void write()字符 ==>写入到文件中
4.对象序列化
1.序列化就是将对象进行流化 加快对象读取的速度 因为网络交互需要在文件直接操作对象
2.序列化的机制 使用一个序列化的id来表示 文件中存储的对象的属性以及方法
3.对象的序列化: 将对象写入到文件中的过程 就是对象序列化 加快写入的速度 效率更高 操作对象
4.对象反序列化 将文件中对象读取的过程 就是对象反序列化 加快读取的速度 操作读写效率更高
注意点: 读取与写入的序列化id必须是一致的
5.对象实现序列化 implements Serializable ==> 默认会生成序列化id
6.对象流
对象流-写-ObjectOutputStream
对象流-读-ObjectInputStream
5.对象流
1.ObjectOutputStream 对象流-写 通过在流中使用文件可以实现对象的持久存储
2.常用的构造方法
方法的名称 | 方法的描述 |
public ObjectOutputStream(OutputStream out) | 创建写入指定 OutputStream 的 ObjectOutputStream |
3.常规的方法
方法的名称 | 方法的描述 |
public final void writeObject(Object obj) | 将指定的对象写入 ObjectOutputStream。对象的类中 |
4.ObjectInputStream 对象流-读
ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化
使用 ObjectInputStream 读取出文件中对象
5.常用的构造方法
方法的名称 | 方法是说明 |
public ObjectInputStream(InputStream in) | 创建从指定 InputStream 读取的 ObjectInputStream |
6.常用的方法
方法的名称 | 方法的说明 |
public final Object readObject() | 从 ObjectInputStream 读取对象。对象的类 |
6.Properties概念
1.Properties 类表示了一个持久的属性集
持久化:将Properties对象中的数据 永久保存到文件 可以与文件进行交互
属性集:Properties 就是以键值对来进行存储
2.Properties 可保存在流中或从流中加载 在进行持久化操作的时候 需要借助于流对象
3.属性列表中每个键及其对应值都是一个字符串 键值对存储只能是字符串
4.Properties对象的父类是 Hashtable
5.Hashtable中的一些方法
方法的名称 | 方法的说明 |
public V put(K key, V value) | 将指定 key 映射到此哈希表中的指定 value。键和值都不可以为 null |
public Set<K> keySet() | 获取所有的键 |
public V get(Object key) | 根据键来获取值 |
6.Properties 独有的方法
方法的名称 | 方法的说明 |
public Object setProperty(String key, String value) | 以键值对来进行存储 |
public String getProperty(String key) | 根据键来获取值 |
public Set<String> stringPropertyNames() | 返回此属性列表中的键集 |
7.将Properties对象的数据保存到文件中
方法的名称 | 方法的说明 |
public void store(OutputStream out, String comments) | 将此 Properties 表中的属性列表(键和元素对)写入输出流 |
public void store(Writer writer, String comments) | 将此 Properties 表中的属性列表(键和元素对)写入输出字符 |
8.将文件中的数据读取到Properties对象中
方法的名称 | 方法的描述 |
public void load(InputStream inStream) | 从输入流中读取属性列表 |
public void load(Reader reader) | 从输入字符流中读取属性列表 |
8.多参数的方法
1.使用的场景:定义方法的时候 不确定其方法形参的个数 确定其参数的数据类型 这时候就可以使用多参数
多参数使用... 例子:asList(T... a)
2.语法:
访问修饰符 返回值类型 方法的名称(T... a) {
方法体
return 返回值
}
3.注意点:
(1) 多参数 ... 表示是一个数组
(2) 多参数的数据类型是一致 但是个数可以是多个
(3) 如果方法中有多个形参 多参数必须写在最后
(4) 一个方法中只能有一个形参为多参数