使用StringWriter和StringReader的好处
當(dāng)你有一組應(yīng)用程序接口(API)只允許用Writer或Reader作為輸入,但你又想使用String,這時可以用StringWriter或StringReader。
?
假設(shè)有下面這樣一個process方法,給這個方法傳遞一個Person對象并把處理結(jié)果寫入到一個Writer對象:
public void process_ (Person person, Writer writer);這是設(shè)計API的一種很好的方式,因為API不必關(guān)心對象構(gòu)造的問題,并且它很簡單且一般化。
Writer類輸出數(shù)據(jù)到一個文件;不過有時候數(shù)據(jù)必須保留在內(nèi)存中,比如想在數(shù)據(jù)被輸出以前在圖形用戶界面(GUI)上先顯示一下,這時可以用StringWriter。StringWriter不是把數(shù)據(jù)寫到某種形式的輸出設(shè)備上,相反,它寫到內(nèi)存中。它有一個空的構(gòu)造器和一個toString方法以得到StringBuffer。例如:
Writer writer = ...;StringWriter out = new StringWriter(writer);
process(person, out);
StringBuffer result = out.getBuffer( );
當(dāng)讀入文件時也一樣。可以用StringReader代替Reader來哄騙API,而不必非得從某種形式的文件中讀入。StringReader的構(gòu)造器要求一個String參數(shù)。例如:
Reader in = new StringReader("<conf><panic level="5"/></conf>");alarm.loadConfig(in);
Writer和Reader類是設(shè)計來處理基于字符串的輸入和輸出的。InputStream和OutputStream類則應(yīng)該用于處理基于字節(jié)的I/O。在這個層次的類中,可以用ByteArrayInputStream和ByteArrayOutputStream來達(dá)到StringReader和StringWriter的類似效果。
轉(zhuǎn)載于:https://www.cnblogs.com/robbinluobo/p/6594925.html
總結(jié)
以上是生活随笔為你收集整理的使用StringWriter和StringReader的好处的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: thinkphp5如何使用layout
- 下一篇: Codeigniter 获取当前的控制器