Java.io.outputstream.PrintStream:打印流
1:提供了更多的功能,比如打印方法。可以直接打印任意類型的數據。
2:它有一個自動刷新機制,創建該對象,指定參數,對於指定方法可以自動刷新。
3:它使用的本機默認的字符編碼.
4:該流的print方法不拋出IOException。
該對象的構造函數。
PrintStream(File file) :創建具有指定文件且不帶自動行刷新的新打印流。
PrintStream(File file, String csn) :創建具有指定文件名稱和字符集且不帶自動行刷新的新打印流。
PrintStream(OutputStream out) :創建新的打印流。
PrintStream(OutputStream out, boolean autoFlush) :創建新的打印流。
PrintStream(OutputStream out, boolean autoFlush, String encoding) :創建新的打印流。
PrintStream(String fileName) :創建具有指定文件名稱且不帶自動行刷新的新打印流。
PrintStream(String fileName, String csn)
PrintStream可以操作目的:1:File對象。2:字符串路徑。3:字節輸出流。
前兩個都JDK1.5版本才出現。而且在操作文本文件時,可指定字符編碼了。
當目的是一個字節輸出流時,如果使用的println方法,可以在printStream對象上加入一個true參數。這樣對於println方法可以進行自動的刷新,而不是等待緩沖區滿了再刷新。最終print方法都將具體的數據轉成字符串,而且都對IO異常進行了內部處理。
既然操作的數據都轉成了字符串,那么使用PrintWriter更好一些。因為PrintWrite是字符流的子類,可以直接操作字符數據,同時也可以指定具體的編碼。
--------------------------------------------------------
PrintWriter:具備了PrintStream的特點同時,還有自身特點:
該對象的目的地有四個:1:File對象。2:字符串路徑。3:字節輸出流。4:字符輸出流。
開發時盡量使用PrintWriter。
方法中直接操作文件的第二參數是編碼表。
直接操作輸出流的,第二參數是自動刷新。
//讀取鍵盤錄入將數據轉成大寫顯示在控制台.
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));//源:鍵盤輸入
//目的:把數據寫到文件中,還想自動刷新。
PrintWriter out = new PrintWriter(new FileWriter("out.txt"),true);//設置true后自動刷新
String line = null;
while((line=bufr.readLine())!=null){
if("over".equals(line))
break;
out.println(line.toUpperCase());//轉大寫輸出
}
//注意:System.in,System.out這兩個標准的輸入輸出流,在jvm啟動時已經存在了。隨時可以使用。當jvm結束了,這兩個流就結束了。但是,當使用了顯示的close方法關閉時,這兩個流在提前結束了。
out.close();
bufr.close();
