Java IO【21】PrintWriter的學習

        現在很容易就忘記了事情,忘記是在昨天早上還是前天早上做的那件事,忘記本應該現在做的那件事,我感覺是因爲生活無限的重複沒有標誌性的事情,沒有令我印象深刻的事情纔會有這種感覺和錯覺。這就是我現在的生活狀態。

       開始技術。其實這個技術很簡單可以寫也可以不寫,但爲了記錄我的學習過程我還的將其寫下來吧。昨天就看了這麼一點簡單的東西,如若不寫昨日就是技術空白了。

      在【20】中講了PrintSteam,那麼接下來就學習了PrintWriter因爲在API中倆個是完全挨着的,那麼什麼是PrintWriter呢。在API中是這樣講的。

    (1)向文本輸出流打印對象的格式化表示形式。此類實現在 PrintStream 中的所有 print 方法。它不包含用於寫入原始字節的方法,對於這些字節,程序應該使用未編碼的字節流進行寫入。

   (2)與 PrintStream 類不同,如果啓用了自動刷新,則只有在調用 printlnprintfformat 的其中一個方法時纔可能完成此操作,而不是每當正好輸出換行符時才完成。這些方法使用平臺自有的行分隔符概念,而不是換行符。

   (3)此類中的方法不會拋出 I/O 異常,儘管其某些構造方法可能拋出異常。客戶端可能會查詢調用 checkError() 是否出現錯誤。

     我自己總結一下就是需要記住幾點首先是格式化表示,然後是對3個方法實現自動刷新功能,最後它不用拋出異常。在其構造函數中可以接受 * 1.字符串路徑 * 2.File對象 * 3.字節輸出流* 4.字符輸出流這四個參數。

      現在看看一直簡單的小小程序。目的是將輸入到控制檯的文字或字符寫回控制檯。

public static void main(String[] args) throws IOException {
		/*
		 * PrintWriter:字符打印流
		 * 構造函數參數:
		 * 1.字符串路徑
		 * 2.File對象
		 * 3.字節輸出流
		 * 4.字符輸出流
		 */
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
		
		PrintWriter out = new PrintWriter(System.out,true);
		//true自動刷新,只對3個方法有效print println format
		String line = null;
		while((line=bufr.readLine())!=null){
			if("over".equals(line))
				break;
			out.println(line);
			//out.write("\n");
			//out.flush();
		}
		out.close();
		bufr.close();

	}
從這個代碼裏面可以清楚的看出自動刷新的好處。

       同時可以將輸出端改爲一個文件,同時實現自動刷新。

PrintWriter out2 = new PrintWriter(new FileWriter("a.txt"),true);

       可以看出這個方法還是很方便的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章