IO基礎之字符流

1,字節流的抽象類InputStream,OutputStream
2,字符流的抽象基類是Reader,Writer。由這個四個類派生出來的子類名稱都是以其父類名作爲子類名的後綴。如InputStream的子類FileInputStream,
字符輸出流

FileWriter fw = new FileWriter("demo.txt");
//如果構造函數里加入true,可以實現續寫
//FileWriter fw = new FileWriter("demo.txt",true);
fw.write("sdsd");
fw.close();
//如果想實現換行在文件裏,可以如//fw.write("sdsd"+System.getProperty("Line.separator")+"ddjieng");

字符輸入流

FileReader fr = new FileReader("dem.txt");
int chl=fr.read();
System.out.println(chl);//如果直接打印在電腦上會是數字,因爲硬盤上存的是二進制,從文件打開的是經過解析了。

循環讀

FileReader fr = new FileReader("dem.txt");
int ch=0;
while((ch=fr.read())!=-1){
System.out.println((char)chl);
}

字符流的另一種讀法

FileReader fr = new FIleReader("dem.txt");
char[] buf =  new char[1024];
int len=0;
while((len=fr.reade(buf))!=-1){
System.out.println(new String(buf,0,len));
}

將文件複製到另一個文件中

FileReader fr = new FileReader("a.txt");
FileWriter fw = new FileWriter("b.txt");
/*int ch=0;
while((ch=fr.read())!=-1){
fw.write(ch);
}*/
int len=0;
char[] buf = new char[1024];
while((len=fr.read(buf))!=-1){
fw.write(buf,0,len);
}
fw.close();
fr.close();

複製的圖解原理
這裏寫圖片描述

字符流的緩衝區
BufferedWriter

FileWriter fw = new FileWriter("c.txt");
BufferedWriter bufw = new BufferedWriter(fw);
bufw.write("ddsdf");
bufw.close();

BufferedReader

FileReader fr = new FileReader(""d.txt);
BufferedReader bufr = new BufferedReader(fr);
String line=null;
while((line=bufr.readlIne())!=null){
System.oout.println(line);
}
bufr.close();

緩衝區的複製文本

FileReader fr = new FileReader("a.txt");
BufferedReader bufr = new BufferedReader(fr);
FileWriter fw = new FileWriter("b.txt");
BUfferedWriter bufw = new BufferedWriter(fw);
/*int ch=0;
while((ch=bufr.read())!=-1){
    bufw.write(ch);
} */
String line=null;
while((line=bufr.readLine())!=null){
bufw.write(line);
bufw.newLine();
bufw.flush();
}
bufw.close();
bufr.close();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章