版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lsf921016/article/details/61599940
Reader,Writer大类
Abstract class for reading character streams. The only methods that a
subclass must implement are read(char[], int, int) and close().
1.将字符串写入文件:
用FileReader
//创建字符输出对象
FileWriter fw = new FileWriter("E:\\javaStudy\\src\\javaIO\\aFile");
fw.write("abcd");//调用filewriter对象的writer方法,将字符串写入流中
fw.flush();//进行刷新,将数据写入目的地
fw.close();//关闭资源
2.读取一个文本文件,将读取到的字符打印到控制台
用FileWriter:
//读取一个文本文件,将读取到的字符打印到控制台
FileReader fr = new FileReader("E:\\javaStudy\\src\\javaIO\\aFile");
//一次读一个字符,read(char ch)返回字符的数值
int ch = fr.read();
if (ch != -1) {
System.out.println((char) ch);
}
// fr.close();
//利用FileWriter的read(char[])重载,一次读入一个字符数组,即缓冲
char[] buf=new char[1024];
int num=fr.read(buf);//将读取到的字符存储至数组。返回读取到的字符个数
System.out.println("读取到"+num+"个字符:"+new String(buf));
3.使用BufferedReader/BufferedWriter读写字符
//BufferedWriter:
//创建一个写入缓冲区,并和指定被缓冲的流对象相关联
FileWriter fw=new FileWriter("E:\\javaStudy\\src\\javaIO\\aFile");
BufferedWriter bufw=new BufferedWriter(fw);
//使用缓冲区方法将数据写入缓冲区
bufw.write("buffered hello");
//换行
bufw.newLine();
//使用缓冲区的刷新方法将数据刷新到目的地中
bufw.flush();
//关闭缓冲区的同时就关闭的inputStream
bufw.close();
//BufferedReader:
FileReader fr=new FileReader("E:\\javaStudy\\src\\javaIO\\when you are old");
BufferedReader bufr=new BufferedReader(fr);
String line=null;
while((line=bufr.readLine())!=null){
System.out.println(line);
}
bufr.close();
4.一个小demo,用bufferedreader/bufferedwriter拷贝一个文本文件:
public class FileCopyByBuffered {
public static void main(String[] args) throws IOException {
BufferedReader bufr=new BufferedReader(new FileReader("E:\\javaStudy\\src\\javaIO\\when you are old"));
BufferedWriter bufw=new BufferedWriter(new FileWriter("E:\\javaStudy\\src\\javaIO\\when you are old_Copy"));
String line=null;
while((line=bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufr.close();
bufw.close();
}
}