第十九天 笔记
1. IO流的概述
操作机器中的文件,硬盘,移动设备上,还联网的主机
将操作设备上的文件的这种技术,称为流技术
读和写,IO流 I=Input O=Output
问?IO流能不能操作文件夹,NO!
IO技术,操作本机上的数据,还可以操作远程计算机上的数据
A-B聊天,网络畅通,数据传输用的就是IO技术
上网,IE 火狐(Firefox),浏览网页,通过IO技术传输的
IO中的方法很少,但是类很多
2. IO流中的分类
操作文件的,根据操作文件的不同,进行分类
在计算机中有一种特殊的文件,文本文件
问?什么是文本文件:记事本可正常打开的 txt java html
word是吗 NO!
Java中出现了专门操作文本文件的流对象
字符流--操作文本文件的时候,自动的去查机器上的编码表(GBK)
非文本文件类型,不能使用字符流
java中有一种流对象,专门处理非文本类型文件
字节是计算机中最小的存储单位,一个字节是多少个二进制位,8个
字节流--处理任意的文件
先有字节,后有字符
IO中的字节字符体系的分类
字符流:
字符输出流(写文件)
字符输出流的抽象基类 -- java.io.Writer
写的方法
字符输入流(读文件)
字符输入流的抽象基类 -- java.io.Reader
读的方法
字节流:
字节输出流(写文件)
字节输出流的抽象基类 -- java.io.OutputStream
字节输入流(读文件)
字节输入流的抽象基类 -- java.io.InputStream
按照操作文件不同,分成字节流和字符流
按照流向不同,分成输出流,输入流
3. 字符输出流--java.io.Writer
查阅API文档找到了他的子类 FileWriter
构造方法 FileWriter(String fileName) 传递字符串的路径和文件名
调用写的方法,是他父类的方法 void wr ite(String str) 抛出IO异常
write方法,写数据的时候,并没有直接写入到目的文件,写在了流对象的缓冲区中
缓冲区在内存中,简单的说,写进了内存,没有写到硬盘
字符流写数据,必须要刷新内存中的数据缓冲,存储到硬盘
flush() 刷新该流的缓冲。
最后的步骤需要完成,必须要完成,既然创建文件,和写文件都是利用操作系统中的功能完成
使用完毕IO流之后,释放调用占用操作系统的资源 (关流)
close()方法,关闭资源,关闭之前,刷新一次
文件,续写,接着往后写
写字符数组
写字符串,可以写单个字符,字符数组,英文,中文
4. 字符流读取文件 -- Java.io.Reader
查阅API文档找到了他的子类 FileWriterReader
构造方法 FileReader(String fileName) 传递字符串的路径和文件名
读取单个字符 int read() 返回值,返回的是int值,读取到的字符的ASCII码
read方法,不但可以读取单个字符,而且还能自动的继续向后读
read方法,如果读取到了文件的末尾,返回-1
int read(char[] cbuf) 传递一个字符数组,简称读取数组
数组中,存储的是:读取到的字符
返回值int 表示什么意思:表示存储到数组中的有效的字符个数
5. 文本文件复制案例
复制文件就是在读取和写入
先读取源文件 FileReader
写到目的文件 FileWriter
第一种复制文件的方式,读一个字符,写一个字符
第二种复制文件的方式,读一个数组,写一个数组××××
案例,明显看出了效率上的明显差别,20倍
推荐,使用数组的方式,提升运行效率
数组起到的作用,缓冲作用 buf
通过案例,发现用数组缓冲,效率很高。我们想到了缓冲提升效率
Oracle工程师们,也想到了提高效率
io包中有两个对象,可以提高输出,输入流的效率
BufferedReader
BufferedWriter
6. 字符流的缓冲区对象
BufferedWriter字符输出流的缓冲区对象
构造方法 BufferedWriter(Writer out)
Writer out 传递一个字符输出流,Witer类的子类对象
缓冲区,就会对我们传递的字符流对象进行高效操作
void newLine() 写入换行
但是我们用 \r\n同样可以实现换行
newLine()方法,推荐使用,进行换行
为什么:原因是:方法具有跨平台性
如果我们安装的JVM是Windows版本:newLine()方法中写的是 \r\n
如果我们安装的JVM是Linux版本:newLine()方法中写的是 \n
BufferedReader字符输入流的缓冲区对象
BufferedReader(Reader in)
Reader in 传递一个字符输入流。 Reader类的子类对象
缓冲区,就会对我们传递的字符流对象进行高效操作
读取一行的方法 String readLine() 文件的末尾,返回的是null
返回值,只有一行有效字符,没有换行符
7. 复制文本文件,用缓冲区
读一行,写一行
1. IO流的概述
操作机器中的文件,硬盘,移动设备上,还联网的主机
将操作设备上的文件的这种技术,称为流技术
读和写,IO流 I=Input O=Output
问?IO流能不能操作文件夹,NO!
IO技术,操作本机上的数据,还可以操作远程计算机上的数据
A-B聊天,网络畅通,数据传输用的就是IO技术
上网,IE 火狐(Firefox),浏览网页,通过IO技术传输的
IO中的方法很少,但是类很多
2. IO流中的分类
操作文件的,根据操作文件的不同,进行分类
在计算机中有一种特殊的文件,文本文件
问?什么是文本文件:记事本可正常打开的 txt java html
word是吗 NO!
Java中出现了专门操作文本文件的流对象
字符流--操作文本文件的时候,自动的去查机器上的编码表(GBK)
非文本文件类型,不能使用字符流
java中有一种流对象,专门处理非文本类型文件
字节是计算机中最小的存储单位,一个字节是多少个二进制位,8个
字节流--处理任意的文件
先有字节,后有字符
IO中的字节字符体系的分类
字符流:
字符输出流(写文件)
字符输出流的抽象基类 -- java.io.Writer
写的方法
字符输入流(读文件)
字符输入流的抽象基类 -- java.io.Reader
读的方法
字节流:
字节输出流(写文件)
字节输出流的抽象基类 -- java.io.OutputStream
字节输入流(读文件)
字节输入流的抽象基类 -- java.io.InputStream
按照操作文件不同,分成字节流和字符流
按照流向不同,分成输出流,输入流
3. 字符输出流--java.io.Writer
查阅API文档找到了他的子类 FileWriter
构造方法 FileWriter(String fileName) 传递字符串的路径和文件名
调用写的方法,是他父类的方法 void wr ite(String str) 抛出IO异常
write方法,写数据的时候,并没有直接写入到目的文件,写在了流对象的缓冲区中
缓冲区在内存中,简单的说,写进了内存,没有写到硬盘
字符流写数据,必须要刷新内存中的数据缓冲,存储到硬盘
flush() 刷新该流的缓冲。
最后的步骤需要完成,必须要完成,既然创建文件,和写文件都是利用操作系统中的功能完成
使用完毕IO流之后,释放调用占用操作系统的资源 (关流)
close()方法,关闭资源,关闭之前,刷新一次
文件,续写,接着往后写
写字符数组
写字符串,可以写单个字符,字符数组,英文,中文
4. 字符流读取文件 -- Java.io.Reader
查阅API文档找到了他的子类 FileWriterReader
构造方法 FileReader(String fileName) 传递字符串的路径和文件名
读取单个字符 int read() 返回值,返回的是int值,读取到的字符的ASCII码
read方法,不但可以读取单个字符,而且还能自动的继续向后读
read方法,如果读取到了文件的末尾,返回-1
int read(char[] cbuf) 传递一个字符数组,简称读取数组
数组中,存储的是:读取到的字符
返回值int 表示什么意思:表示存储到数组中的有效的字符个数
5. 文本文件复制案例
复制文件就是在读取和写入
先读取源文件 FileReader
写到目的文件 FileWriter
第一种复制文件的方式,读一个字符,写一个字符
第二种复制文件的方式,读一个数组,写一个数组××××
案例,明显看出了效率上的明显差别,20倍
推荐,使用数组的方式,提升运行效率
数组起到的作用,缓冲作用 buf
通过案例,发现用数组缓冲,效率很高。我们想到了缓冲提升效率
Oracle工程师们,也想到了提高效率
io包中有两个对象,可以提高输出,输入流的效率
BufferedReader
BufferedWriter
6. 字符流的缓冲区对象
BufferedWriter字符输出流的缓冲区对象
构造方法 BufferedWriter(Writer out)
Writer out 传递一个字符输出流,Witer类的子类对象
缓冲区,就会对我们传递的字符流对象进行高效操作
void newLine() 写入换行
但是我们用 \r\n同样可以实现换行
newLine()方法,推荐使用,进行换行
为什么:原因是:方法具有跨平台性
如果我们安装的JVM是Windows版本:newLine()方法中写的是 \r\n
如果我们安装的JVM是Linux版本:newLine()方法中写的是 \n
BufferedReader字符输入流的缓冲区对象
BufferedReader(Reader in)
Reader in 传递一个字符输入流。 Reader类的子类对象
缓冲区,就会对我们传递的字符流对象进行高效操作
读取一行的方法 String readLine() 文件的末尾,返回的是null
返回值,只有一行有效字符,没有换行符
7. 复制文本文件,用缓冲区
读一行,写一行
110

被折叠的 条评论
为什么被折叠?



