IO流
IO流概述
IO流概念
使用集合类创建的学生管理系统,当运行后,添加学生过程中,其添加的数据只是在内存中存储,当结束程序以后,数据就消失了。因此需要使用IO流对数据进行保存。
IO流有效地解决了文件复制,文件下载,文件上传的数据传送问题。
基本流的文件的读取与写入
FileWriter文件的写入
往文件中写入数据,使用的是FileWriter类。
构造方法
构造方法 | 说明 |
---|---|
FileWriter(String fileName) | 传入文件名构造对象 |
FileWriter(String fileName, boolean append) | 传入文件名构造对象,且对象可以追加数据 |
举例:FileWriter fw = new FileWriter(“test.txt”)
成员方法
类型 | 成员变量 | 说明 |
---|---|---|
void | write(char[]) | 写入字符数组 |
void | write(string) | 写入字符串 |
void | write(int c) | 写入单个字符 |
void | flush() | 刷新内存池 |
void | close() | 释放资源 |
举例:将“hello world”写入“test.java”文件
FileWriter fw = new FileWriter("test.txt");
String s = “hello world”;
fw.write(s); //写入字符串
fw.flush(); //刷新内存池
fw.close() //释放资源
绝对路径与相对路径
FileWriter fw = new FileWriter(“test.txt”); 是指向了当前项目的根目录下创建的test.txt文件
如果想要创建其他路径下的文件,在前面加上盘符即可
FileWriter fw = new FileWriter(“C:\test.txt”);
数据换行和追加数据
如何实现数据换行:
Windows记事本中识别的换行符为\r,
window:\r \n
linux: \n
mac: \r
因此写入数据时,如果要换行,则使用fw.write(“\n”)即可
追加数据:FileWriter(String fileName, boolean append)
若可以追加数据:
FileWriter(String fileName, true)
若不能追加数据
FileWriter(String fileName, false)
FileReader文件的读取
构造方法
构造方法 | 说明 |
---|---|
FileReader(String fileName) | 传入文件名读取 |
成员方法
类型 | 成员变量 | 说明 |
---|---|---|
int | read() | 读取单个字符,如果读到最后一位返回值为-1 |
int | read(char[]) | 将读到的字符写入字符串,如果读到最后一位,返回值为-1 |
void | flush() | 刷新内存池 |
void | close() | 释放资源 |
举例:将test.java中的内容写入copy.java中
FileReader fr = new FileReader("test.java");
FileWriter fw = new FileWriter("copy.java");
char[] test = new char[1024];
while(fr.read(test)!=-1){
fw.write(chs);
}
fr.close();
FileReader fr = new FileReader("test.java");
FileWriter fw = new FileWriter("copy.java");
int ch ;
while((ch=fr.read())!=-1){
fw.write(ch);
}
fr.close();
缓冲流的文件的读取与写入
缓冲流概念
BufferedWriter:
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
同理BufferedReader
缓冲流的输入
构造方法
BufferedReader(Reader in) : 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
Reader in是一个FileReader文件
举例:BufferedReader br = new BufferedReader(new FileReader(“ab.txr”));
成员方法
类型 | 成员变量 | 说明 |
---|---|---|
int | read() | 读取单个字符,如果读到最后一位返回值为-1 |
int | read(char[]) | 将读到的字符写入字符串,如果读到最后一位,返回值为-1 |
String | readLine() | 逐行读取 |
void | flush() | 刷新内存池 |
void | close() | 释放资源 |
缓冲流的输出
构造方法
BufferedWriter(Writer in) : 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
Writer in是一个FileWriter文件
举例:BufferedWriter bw = new BufferedWriter(new FileWriter(“ab.txr”));
成员方法
类型 | 成员变量 | 说明 |
---|---|---|
void | write() | 写入单个字符 |
void | write(char[])将char[]数组中的内容写入文件中 | |
String | newLine() | 创建新行 |
void | flush() | 刷新内存池 |
void | close() | 释放资源 |