DAY09:
IO流体系结构
字节流
|_ InputStream # 字节输入流顶层
|_ FileInputStream # 文件字节输入流
|_ OutputStream # 字节输出流顶层
|_ FileOutputStream # 文件字节输出流
字符流
|_ Reader # 字符输入流顶层
|_ FileReader # 文件字符输入流
|_ Writer # 字符输出流顶层
|_ FileWriter # 文件字符输出流
能够使用字节输出流写出数据到文件
// 1. 创建流对象
FileOutputStream fos = new FileOutputStream("文件路径");
// 2. 写数据
fos.write(字节/字节数组);
// 3. 释放资源
fos.close();
能够使用字节输入流读取数据到程序
// 1. 创建流对象
FileInputStream fis = new FileInputStream("文件路径");
// 2. 读数据
int by (数据) = fis.read(); // 一次读一个字节
int len (个数) = fis.read(数组); // 一次读一个字节数组
// 3. 释放资源
fis.close();
能够理解读取数据read(byte[])方法的原理
byte[] bytes = new byte[2]; ABCDE
read(bytes); // AB 2个字节
read(bytes); // CD 2个字节
read(bytes); // ED 1个字节
能够使用字节流完成文件的复制
边读边写
// 1创建2个流对象 输入流 输出流
FileInputStream fis = ...; // 数据源
FileOutputStream fos = ..; // 目的地
// 循环读写
// 一次读写一个字节
int by;
while ((by = fis.read()) != -1) {
fos.write(by);
}
// 一次读写一个字节数组
byte[] bytes = new byte[1024];
int len;
while ((len = fis.read(bytes)) != -1) {
fos.write(bytes, 0, len);
}
// 释放资源
close();
能够使用FileWirter写数据到文件
1. 创建对象
2. write写
char
char[]
String
char[]/String的一部分
3. 释放资源
能够说出FileWriter中关闭和刷新方法的区别
close(): 刷新缓冲区 并释放资源. 不能操作流对象
flush(): 刷新缓冲区. 能操作流对象
能够使用FileWriter写数据的5个方法
char
char[]
String
char[]/String的一部分
够使用FileWriter写数据实现换行和追加写
windows: "\r\n"
追加写: boolean append构造 传true
能够使用FileReader读数据
1. 创建流对象
2. read()
char
char[]
3. 释放资源
能够使用FileReader读数据一次一个字符数组
char[] chs = new char[1024];
int len;
while ((len = fr.read(chs)) != -1) {
}
能够使用Properties的load方法加载文件中配置信息
1. 创建Properties对象
2. 用Properties对象调用load(字符流对象)
3. 获取键值对
DAY10:
能够使用字节缓冲流读取数据到程序
BufferedInputStream bis = new BufferedInputStream(基本流对象FileInputStream);
bis.read()
bis.close()
能够使用字节缓冲流写出数据到文件
BufferedOutputStream bos = new BufferedOutputStream(基本流对象FileOutputStream);
bos.write();
bos.close();
能够明确字符缓冲流的作用和基本用法
BufferedReader/BufferedWriter
提高基本流的读写效率
BufferedReader br = new BufferedReader(基本流FileReader);
br.read()
br.close()
能够使用缓冲流的特殊功能
BufferedReader
String readLine(): 不会返回换行符
BufferedWriter
void newLine(): 可以根据系统自动确定换行符
能够阐述编码表的意义
编码表: 存储 字符 和 数字 的对应关系
能够使用转换流读取指定编码的文本文件
InputStreamReader
new InputStreamReader(基本流, "编码")
能够使用转换流写入指定编码的文本文件
OutputStreamWriter
new OutputStreamWriter(基本流, "编码")
能够说出打印流的特点
1. 只有输出, 没有输入
2. 不会抛IOException
3. 有特有的方法 print() println()原样输出
DAY11:
能够辨别UDP和TCP协议特点
UDP:
1. 无连接的不可靠协议
2. 以包发送, 64k一个包
3. 速度快效率高, 容易丢包
TCP:
1. 有连接的可靠协议
2. 传输数据没有大小限制
3. 速度慢效率低, 安全性高
能够说出TCP协议下两个常用类名称
客户端: Socket
服务端: ServerSocke
能够编写TCP协议下字符串数据传输程序
客户端Socket获取流发送和接收
服务端等待客户端连接, 通过客户端获取流, 接收发送
能够理解TCP协议下文件上传案例
上传图片
客户端:
读取磁盘图片
通过网络流写出
通过网络流读取服务端的响应
服务端:
通过网络流读取上传的数据
写入磁盘保存图片
通过网络流发送响应
能够理解TCP协议下B/S案例
客户端: 浏览器
服务端:
通过网络流读取客户单发来的数据(处理)
读取磁盘的html文件
通过网络流发送到客户端
|
|