緩沖流,BufferedReader,BufferedWriter
1)BufferedReader,BufferedWriter是更高級的流,二者的源和目的地必須是字符輸入流和字符輸出流.如果把字符輸入流做為BufferedReader流的源,把字符輸出流作為BufferedWriter流的目的地,那么BufferedReader,BufferedWriter將有更強的讀、寫能力。
BufferedReader(Reader
in);
BufferedWriter(Writer
out);
int read();
int read(
char[] cbuf,
int off,
int len)
String readLine()
void write(
int c)
void write(String s,
int off,
int len)
void write(
char[] cbuf,
int off,
int len)
void newLine()
FileReader
in=
new FileReader(
"Student.txt");
BufferedReader ino=
new BufferedReader(
in);FileWriter
out=
new FileWrietr(
"Student.txt");
BufferedWriter outo=
new BufferedWriter(
out);
BufferedReader,BufferedWriter 是上層流,它們指向的是底層流,java緩存技術將上層流和底層流連接。底層字符輸入流首先將數據讀入緩存,BufferedReader流在從緩存中讀數據;BufferedWriter流是將數據寫入緩存,底層字符輸出流會不斷的將緩存中的數據寫入到目的地。
程序舉例:
import java.io.*;
public class test {
public static void main(String args[]) {File file=
new File(
"Student.txt");String content[]={
"這是一本書:",
"第一章:",
"第二章:",
"第三章:"};
try{FileWriter outOne=
new FileWriter(file);BufferedWriter outTwo=
new BufferedWriter(outOne);
for(String str:content) {outTwo.write(str);outTwo.newLine();}outTwo.close();outOne.close();FileReader inOne=
new FileReader(file);BufferedReader inTwo=
new BufferedReader(inOne);String s=
null;
while((s=inTwo.readLine())!=
null) {System.
out.println(s);}inOne.close();inTwo.close();}
catch(IOException e) {System.
out.println(e);} }
}
2)從System.in中讀數據:從標準輸入流System.in中直接讀取使用者輸入時,使用者每輸入一個字符,System.in就讀取一個字符。為了能一次讀取一行使用者的輸入,使用了BufferedReader來對使用者輸入的字符進行緩沖。readLine()方法會在讀取到使用者的換行字符時,再一次將整行字符串傳入。
System.in是一個位流,為了轉換為字符流,可使用InputStreamReader為其進行字符轉換,然后再使用BufferedReader為其增加緩沖功能。InputStreamReader是轉換流,將字節流轉換為字符流
程序舉例:將鍵盤輸入的字符串寫入文件中
public class BufferedReaderWriterDemo
{
public static void main(String[] args) {
try { BufferedReader bufReader =
new BufferedReader(
new InputStreamReader(System.
in)); BufferedWriter bufWriter =
new BufferedWriter(
new FileWriter(
"a.txt")); String input =
null;
while(!(input = bufReader.readLine()).equals(
"quit")) { bufWriter.write(input); bufWriter.newLine(); } bufReader.close(); bufWriter.close(); }
catch(ArrayIndexOutOfBoundsException e) { System.
out.println(
"沒有指定文件"); }
catch(IOException e) { e.printStackTrace(); } }
}
總結
以上是生活随笔為你收集整理的java缓冲流,BufferedReader,BufferedWriter 详解的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。