io概述
song

File类

  • 描述磁盘的文件和文件夹
  • 对文件或目录的基本操作包括: 创建、删除
  • File类不行操作文件中存储的内容
  • File类是为配合IO流使用

IO流

  • 对磁盘上的文件进行读、写操作

    • 读: 磁盘–>内存
    • 写: 内存–>磁盘 (持久化)
  • 字节流 :万能流

    • 字节输出流: 以字节为单位,把内存中的数据写入磁盘文件中 FileOutputStream
    • 字节输入流: 以字节为单位,把磁盘的数据读取到内存中 FileInputStream
  • 字符流 : 字节流+编码表 读写文本文件的流

    • 字符输出流 以字符(char)为单位,把内存中的数据写入磁盘文件中
    • 字符输入流 以字符(char)为单位,把磁盘的数据读取到内存中
  • 使用套路

    • 创建(打开冰箱)–>操作(把大象放入冰箱/把大象从冰箱取出)–>关闭(关闭冰箱)
  • 对象流

  • 打印流

1
2
3
4
5
6
7
8
9
10
11
12
13
14
flowchart TD

A[IO流]
B[输出流]
C[输入流]
D[字节流]
E[字符流]

A-->B
A-->C
B-->|输出|D
B-->|输出|E
C-->|输入|D
C-->|输入|E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
classDiagram

class OutputStream{
<<abstract>>
+ write():void
}
class FileOutputStream
class FilterOutputStream
class BufferedOutputStream

OutputStream<|--FileOutputStream
OutputStream<|--FilterOutputStream
FilterOutputStream<|--BufferedOutputStream

class InputStream{
<<abstract>>
+ read():byte[]
}
class FileInputStream
class FilterInputStream
class BufferedInputStream

InputStream<|--FileInputStream
InputStream<|--FilterInputStream
FilterInputStream<|--BufferedInputStream

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
classDiagram

class Writer{
<<abstract>>
+ write()
+ flush()
+ close()
}
class FileWriter
class BufferedWriter{
+ BufferedWriter(Writer)
+ newLine()
}
class OutputStreamWriter{
+ OutputStreamWriter(OutputStream,Chatset)
}

Writer<|-- OutputStreamWriter
OutputStreamWriter<|-- FileWriter
Writer<|-- BufferedWriter

class Reader{
<<abstract>>
+ read()
}
class FileReader
class BufferedReader{
+ readeLine()
}
class InputStreamReader{
+ InputStreamReader(InputStream,Chatset)
}


Reader<|--InputStreamReader
InputStreamReader<|-- FileReader
Reader<|-- BufferedReader

扩展内容

Properties

  • key/value 键值对 map系集合
  • load结合输入流可加载properties类型配置文件
  • store结合输出流可把k/v键值持久化到properties类型文件

ResourceBundle

  • 读取项目工程src目录中的 .properties配置文件
由 Hexo 驱动 & 主题 Keep