日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java IO: Reader And Writer

發(fā)布時間:2023/12/3 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java IO: Reader And Writer 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載自??Java IO: Reader And Writer

譯文鏈接?作者: Jakob?Jenkov??譯者: 李璟(jlee381344197@gmail.com)

Java?IO的Reader和Writer除了基于字符之外,其他方面都與InputStream和OutputStream非常類似。他們被用于讀寫文本。InputStream和OutputStream是基于字節(jié)的,還記得嗎?

Reader

Reader類是Java?IO中所有Reader的基類。子類包括BufferedReader,PushbackReader,InputStreamReader,StringReader和其他Reader。

這是一個簡單的Java?IO?Reader的例子:

Reader reader = new FileReader("c:\\data\\myfile.txt"); int data = reader.read(); while(data != -1){char dataChar = (char) data;data = reader.read(); }

請注意,InputStream的read()方法返回一個字節(jié),意味著這個返回值的范圍在0到255之間(當達到流末尾時,返回-1),Reader的read()方法返回一個字符,意味著這個返回值的范圍在0到65535之間(當達到流末尾時,同樣返回-1)。這并不意味著Reade只會從數(shù)據(jù)源中一次讀取2個字節(jié),Reader會根據(jù)文本的編碼,一次讀取一個或者多個字節(jié)。

你通常會使用Reader的子類,而不會直接使用Reader。Reader的子類包括InputStreamReader,CharArrayReader,FileReader等等??梢圆榭碕ava IO概述瀏覽完整的Reader表格。

整合Reader與InputStream

一個Reader可以和一個InputStream相結(jié)合。如果你有一個InputStream輸入流,并且想從其中讀取字符,可以把這個InputStream包裝到InputStreamReader中。把InputStream傳遞到InputStreamReader的構(gòu)造函數(shù)中:

Reader reader = new InputStreamReader(inputStream);

在構(gòu)造函數(shù)中可以指定解碼方式。更多內(nèi)容請參閱InputStreamReader。

Writer

Writer類是Java?IO中所有Writer的基類。子類包括BufferedWriter和PrintWriter等等。這是一個Java?IO?Writer的例子:

Writer writer = new FileWriter("c:\\data\\file-output.txt"); writer.write("Hello World Writer"); writer.close();

同樣,你最好使用Writer的子類,不需要直接使用Writer,因為子類的實現(xiàn)更加明確,更能表現(xiàn)你的意圖。常用子類包括OutputStreamWriter,CharArrayWriter,FileWriter等。Writer的write(int c)方法,會將傳入?yún)?shù)的低16位寫入到Writer中,忽略高16位的數(shù)據(jù)。

整合Writer和OutputStream

與Reader和InputStream類似,一個Writer可以和一個OutputStream相結(jié)合。把OutputStream包裝到OutputStreamWriter中,所有寫入到OutputStreamWriter的字符都將會傳遞給OutputStream。這是一個OutputStreamWriter的例子:

Writer?writer?=?new?OutputStreamWriter(outputStream);

整合Reader和Writer

和字節(jié)流一樣,Reader和Writer可以相互結(jié)合實現(xiàn)更多更有趣的IO,工作原理和把Reader與InputStream或者Writer與OutputStream相結(jié)合類似。舉個栗子,可以通過將Reader包裝到BufferedReader、Writer包裝到BufferedWriter中實現(xiàn)緩沖。以下是例子:

Reader reader = new BufferedReader(new FileReader(...)); Writer writer = new BufferedWriter(new FileWriter(...));

總結(jié)

以上是生活随笔為你收集整理的Java IO: Reader And Writer的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。