字符流:就是在字节流的基础上,加上编码,形成的数据流
字符流出现的意义:因为字节流在操作字符时,可能会有中文导致的乱码,所以由字节流引申出了字符流。
字符输入流:Reader
常用子类:FileReader
文件字符输入流常用方法:
read();
read(char[ ]);
read(char[ ] ,offset,len);
字符输出流: Writer
常用子类:文件字符输出流: Filewriter
文件字符输出常用方法:
writer();
writer(char[ ]);
writer(char[ ],offset,len);
writer(string);
flush()刷新缓冲区
注意:close()方法默认调用了flush()方法,但是flush()方法只刷新缓冲区,而close()还会关闭IO流
字符输入流代码示例:
复制代码
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Demo5 {
public static void main(String[] args) throws IOException{
FileReader fr=new FileReader(new File("1.txt"));
char[] ca=new char[1024];
int count=0;
while((count=fr.read(ca))!=-1) {
System.out.println(new String(ca,0,count));
}
}
}
复制代码
运行结果:
字符输出流代码示例:
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Demo6 {
public static void main(String[] args) throws IOException{
FileReader fr=new FileReader(new File("1.txt"));
FileWriter fw=new FileWriter(new File("2.txt"));
char[] ca=new char[1024];
int count;
while((count=fr.read(ca))!=-1) {
fw.write(ca,0,count);
}
fr.close();
fw.close();
}
}
执行结果:
字符流与字节流的区别:字符流虽然以字节流为基础创建的,但是字节流可以支持声音,视频,图片,文本等所有文件类型,而字符流只支持文本文件。
带缓冲区的字符流:
BufferedReader/BufferedWriter 带缓冲区的字符输入流与字符输出流。
带缓冲区的字符输入流:BufferedReader:常用方法:readLine() 读取一行,如果为文件末尾,返回值为null。
带缓冲区的字符输出流:BufferedWriter:常用方法:writer(string)将字符串写入 到输出流。 newLine()根据系统的行分割符进行换行。
来源:CSDN
作者:只争朝夕^ω^)↗
链接:https://blog.csdn.net/vv___/article/details/104565067