PrintWriter類
java.io包
1)首先先知道它的八種構造方法,但怎麼記住這八種呢?我們都知道PrintWriter是一種過濾流,也叫處理流。也就是能對位元組流和字元流進行處理,所以它會有:
PrintWriter(OutputStream out) 根據現有的 OutputStream 建立不帶自動行重新整理的新 PrintWriter。
PrintWriter(Writer out) 建立不帶自動行重新整理的新 PrintWriter。
這兩種構造方法。由於PrintWriter能夠實現自動重新整理所以又衍生出另兩種:
PrintWriter(OutputStream out, boolean autoFlush) 通過現有的 OutputStream 建立新的 PrintWriter。
PrintWriter(Writer out, boolean autoFlush) 建立新 PrintWriter
true代表能自動重新整理。注意這四種均不能指定編碼集,但PrintStream中對OutprintStream操作時是可以的。【其中原因我不知,有知道的朋友歡迎指教】。
然後PrintWriter能夠直接對檔案操作,所以還有這兩種構造方法:
PrintWriter(File file) 使用指定檔案建立不具有自動行重新整理的新 PrintWriter。
PrintWriter(String fileName) 建立具有指定檔名稱且不帶自動行重新整理的新 PrintWriter。
注意該構造方法無法指定能否自動重新整理,但可以指定字符集所以又衍生出兩種:
PrintWriter(File file, String csn) 建立具有指定檔案和字符集且不帶自動刷行新的新 PrintWriter。
PrintWriter(String fileName, String csn) 建立具有指定檔名稱和字符集且不帶自動行重新整理的新 PrintWriter。
2)熟記這八種構造方法,你可以隨心構造你需要的PrintWriter物件了(假如為pw)。那它實現了什麼介面呢?
1.Closeable介面, 所以它有pw.close()方法來實現對PrintWriter的關閉。
2.Flushable介面,所以它有pw.flush()方法來實現人為的重新整理。
3.Appendable介面,所以它有pw.append(char c)方法來向此輸出流中追加指定字元,等價於print().
3)下面就是它的方法。
返回型別為PrintWriter的方法
append(char c)
format(String regex,Object args)以指定格式的字串和引數寫入PrintWriter,我個人認為等同於printf
printf()
返回型別為void的方法
println(Object obj)列印obj,可以是基本資料型別或物件,並換行
print(Object obj)同上,但不換行
write(int i) 寫入單個字元i
write(char[] buf) 寫入字元陣列。
write(char[] buf, int off, int len) 寫入字元陣列的某一部分。
write(String s) 寫入字串
write(String s, int off, int len)寫入字串的某一部分
個人認為:write()方法與print()方法基本一致 但是write(char[] buf, int off, int len)print()不行。但筆者推薦使用Print系列方法,這正是PrintWriter類的價值所在。
返回型別為boolean型別的方法
checkError() 重新整理流並檢查其錯誤狀態
4)舉例:
import java.io.IOException;
import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.File;
public class PrintWriterDemo {
public static void main(String[] args) {
PrintWriter pw = null;
String name = "張鬆偉";
int age = 22;
float score = 32.5f;
char sex = '男';
try{
pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")),true);
pw.printf("姓名:%s;年齡:%d;性別:%c;分數:%5.2f;", name,age,sex,score);
pw.println();
pw.println("多多指教");
pw.write(name.toCharArray());
}catch(IOException e){
e.printStackTrace();
}finally{
pw.close();
}
}
}
上面這個例子中呢,完全可以把pw = new PrintWriter(new FileWriter(new File("e:\\file.txt")),true);中的new FileWrite去掉 毫無影響且可以指定字符集。
總結:PrintWriter是一個非常實用的輸出流,下一篇我將介紹一個非常實用的輸入流Scanner
相關文章
- Servlet超基礎PrintWriter ??Servlet
- 內建物件out和PrintWriter物件
- JavaWeb開發之PrintWriter亂碼JavaWeb
- [java IO流]之 萬能輸出流列印流printWriterJava
- Java疑問:-------在Socket中用PrintWriter 寫入的資料為什麼用DataInputStream不能讀取?JavaAI
- IP地址分類(A類 B類 C類 D類 E類)
- 【java】Maths類、Random類、System類、BigInteger類、BigDecimal類、Date類、SimpleDateFormat類JavarandomDecimalORM
- Scanner類、Random類、ArrayList類random
- Java的特殊類用法:檔案類、內部類、本地類、匿名類Java
- JAVA集合類簡要筆記 - 內部類 包裝類 Object類 String類 BigDecimal類 system類Java筆記ObjectDecimal
- C# 繼承 子類(派生類) 父類(基類)C#繼承
- DriveInfo類,Path類
- Java常用類-Object類JavaObject
- 分類 和 聚類聚類
- JAVA常用類--Cleaner類Java
- 類的繼承_子類繼承父類繼承
- SQLAlchemy Table(表)類方式 – Table類和Column類SQL
- 獲取類屬性值,當前類,父類
- 泛型類派生子類泛型
- python 類的子類Python
- python類的子類Python
- Java —— 列舉類(enum 類)Java
- Java —— 檔案類(File 類)Java
- Java —— 集合工具類(Collections 類)Java
- 類與類的載入
- JAVA常用類--Runtime類Java
- Java超類與子類Java
- BigInter類和Decimallei類Decimal
- java語言邏輯類、引數類和字元類Java字元
- [原創]介面、類、抽象類、物件的另類解釋抽象物件
- 京東獲得jd商品分類API介面(父分類、根分類、子分類)API
- python建立類和類方法Python
- Java類與匿名內部類Java
- 併發工具類(五) Phaser類
- 陣列,陣列類,SyStem類陣列
- 何時使用static類(工具類)
- Java中常用類之Object類JavaObject
- 繼承 基類與派生類繼承