IO流:可以把数据存储到文件,也可以从文件中读取数据,实现数据持久化存储
IO流: 输入流------>读数据----->FileReader
输出流------>写数据----->FileWriter
FileWriter步骤:
1.创建输出流对象
FileWriter fw = new FileWriter(路径);---->导包
ps:相对路径,相对当前项目而言的,在项目的根目录下,没有盘符;
绝对路径,以盘符开始的路径
2.调用输出流对象的写数据方法
fw.write(); //写数据
fw.fulsh(); //刷新缓冲区,相当于保存
3.释放资源
fw.close(); //释放资源, 通知系统释放和该文件相关的资源,不能再写东西
fulsh()和close()的区别:
fulsh():刷新缓冲区 流对象还可以继续使用
close():先刷新缓冲区,然后通知系统释放资源 流对象不可以再被使用
void write(String str):写一个字符串数据
void write(String str,int index, int len): 写一个字符串的一部分数据
void write(int ch): 写一个字符数据,这里写int 类型的好处就是既可以char 类型,也可
以char对应的int 类型的值 。'a',97
void write(char[] chs):写一个字符数组
void write(char[] chs,int index, int len):写一个字符数的一部分数据
换行: windows : \r\n
linux : \r
mac: \r
追加:FileWriter fw = new FileWriter(路径,true);
FileReader步骤
1.创建输入流对象
FileReader fr = new fileReader(文件名);----->导包
2.调用输入流读数据的方法
A. int read(): 一次读取一个字符
int ch;
while( (ch = fr.read()) != -1){
System.out.print ((char) ch);
}
B. int read(char[] cauf ) :一次读取一个字符数组的数据 ,返回的是实际读取的个数
char[] arr = new char[1024];
int len ;
while((len=fr.read(arr))!=-1){
System.out.print (new String(arr,0,len);
}
3.释放资源
高效缓冲流
Bufferedwriter: 将文本写入字符输出流,缓冲各个字符,数组和字符的高效写入
Bufferawriter bw = new Bufferawriter(new fileWriter(路径));
bw.write();
bw.flush();
bw.close();
BuffereReader: 从字符输入流中读取文本,缓冲各个字符,从而实现字符,数组和行的高效读取
BufferedReader br = new BufferedReader(new FileReader(路径));
缓冲流重点:
特殊功能:
Bufferedwriter:
void newLine(): 写一个换行符,这个换行符由系统决定
BuffereReader:
String readLine(): 一次读取一行数据,但是不读取换行符
String line;
while((line=br.read())!=null){
bw.write(line);
bw.readLine;
bw.flush()
}
|
|