1.什么是IO流
IO流就是输入流(InputStream)和输出流(OutputStream)的意思
2.作用
用于在设备之间数据的传输,比如:文件复制、 上传文件、 下载文件
3.写出数据到文件中,使用 FileWriter ,主要有五大方法(如果数据中有中文,写入文件会出现乱码):
void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97
void write(char[] chs):写一个字符数组数据
void write(String str):写一个字符串数据
void write(char[] chs,int index,int len):写一个字符数组的一部分数据, index:开始索引,len:写几个
void write(String str,int index,int len):写一个字符串中的一部分数据, index:开始索引,len:写几个
3.2 从文件中读入数据,使用FileReader,主要有两个方法(如果数据中有中文,写入文件会出现乱码):
int read() 读取单个字符并返回(返回的读取的字符)
int read(char[] cbuf) 一次读取一个字符数组的数据,返回的是实际读取的字符个数
int ch;
/*
* while循环的条件表达式一共做了3件事情
* 1:fr.read() 读取一个字符
* 2:ch=fr.read() 把读取的字符赋值给ch(因为字符也可以使用数字表示,所以可以使用int类型接收字符)
* 3:ch != -1 判断ch是否为-1
*/
while((ch=fr.read())!=-1) {
//System.out.println((char)ch);
}
--------------------------
char[] chs = new char[1024]; //这里可以是1024及其整数倍
int len;
while((len=fr.read(chs))!=-1) {
System.out.print(new String(chs,0,len));
}
缓存流
- BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
BufferedReader:从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
他们两个主要使用的方法(其他的和FileReader、FileWriter一样):
BufferedWriter
void newLine():写一个换行符,这个换行符由系统决定
BufferedReader
String readLine():一次读取一行数据,但是不读取换行符
BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));
Ps:判断是写出数据、还是读入数据是看方向的,以内存为标准。由内存向外输出数据则是输出流,反之则是输入流