第八章 流
时间:2017年4月28日11:03:07~2017年4月28日11:41:54
章节:08章_01节
视频长度:21:15
内容:IO初步
心得:
所有的流在java.io包里面
定义了多个流类型(类或抽象类)来实现输入/输出功能
可以从不同的角度对其进行分类
按数据流的方向不同可以分为输入流和输出流
按处理数据单位不同可以分为字节流和字符流
按照功能不同可以分为节点流和处理流
jdk中所提供的的所有流类型位于包Java.io内都分别继承自以下四种抽象流类型
输入流 InputStream Reader(字符)
输出流 OutputStream Writer(字符)
字节流就是01010101的读 每次读1个字节(8位)
字符流就是按一个字符一个字符的读 1个字符=2个字节
节点流是直接将流连接到程序,可以从一个特点的数据源(节点)读写数据(如:文件,内存)
处理流是"连接"在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能
图形显示
inputStream
outputStream
Reader
Writer
时间:2017年4月28日11:42:08~2017年4月28日13:45:03
章节:08章_02节
视频长度:11:34
内容:FileInputStream_FileOutputStream
新的:
节点流类型
文件的复制
FileInputStream in = null;
FileOutputStream out = null;
try{
in = new FileInputStream("d:/java/testFileInput.java");//要读取的文件
out =new FileOutputStream("d:/java/testFileOutput.java");//要写入的文件
while((b=in.read()) != -1){
out.write(b);
}
in.close();
out.close()
....之后的cath就不写了
}
将读出来的字节存到b中 再写入到out里。
时间:2017年4月28日13:45:33~2017年4月28日13:49:56
章节:08章_03节
视频长度:05:10
内容:FileReader 和FileWriter
心得:
和上面一样
int c= 0;
FileReader fr =null;
fr=new FileReader("文件地址")
while((c=fr.read()) != -1){
System.out.print((char)c)
}
时间:2017年4月28日13:50:16~2017年4月28日14:02:58
章节:08章_04节 08章_05节
视频长度:13:32 + 1:18
内容:BufferedIO + IO_FAQ
心得:
处理流
处理流是"连接"在已存在的流(节点流或处理流)之上,通过对数据的处理为程序提供更为强大的读写功能
时间:2017年4月28日14:05:22~2017年4月28日14:24:46
章节:08章_06节
视频长度:22:06
内容:TransformIO
心得:
转换流
可以将字节流与字符流之间互相转换
OutputStreamWriter osw =new OutputStreamWriter(
new FileOutputStream("...")
)
将字节流转换为字符流 返回一个字符流
true 的话 是代表追加 接着原来文件后面写
不写true的话 会将原来的内容清空掉
第3个参数“iso-8859-1”是指定字符编码 latin-1
System.in//阻塞式的方法,也是同步方法
时间:2017年4月28日14:24:53~2017年4月28日14:40:24
章节:08章_07节
视频长度:18:40
内容:DataIO ByteArrayIO
心得:
注意 先写进去的先读出来
(先进先出)--队列
(先进后出)--栈
时间:2017年4月28日14:40:39~2017年4月28日14:50:39
章节:08章_08节
视频长度:21:21
内容:Print 流
心得:
打印流 只有wtrite 和out了 因为是打印出来
注意 System.setOut ,更改了打印的位置
原来默认是打印在控制台
这里改成了 打印到文件里了。
控制台参数 是文件名
然后一行一行的打印出来 到控制台
将控制台输入的文字 写到一个文件里
然后作一些处理 就是一个简单的日志文件记录
同样是阻塞式的
时间:2017年4月28日14:50:39 ~2017年4月28日15:00:14
章节:08章_09节
视频长度:13:06
内容:ObjectIO 流
心得:
直接将对象(Object)写入或读出