在本教程中,我們將借助示例學(xué)習(xí)Java StringWriter及其子類。
java.io包的StringWriter類可用于將數(shù)據(jù)(以字符為單位)寫入字符串緩沖區(qū)。
它繼承了抽象類Writer。
注意:在Java中,字符串緩沖區(qū)被認(rèn)為是可變的字符串。也就是說,我們可以修改字符串緩沖區(qū)。要將字符串緩沖區(qū)轉(zhuǎn)換為字符串,可以使用toString()方法。
為了創(chuàng)建一個StringWriter,我們必須首先導(dǎo)入java.io.StringWriter包。導(dǎo)入包后,就可以創(chuàng)建字符串寫入器了。
//創(chuàng)建 StringWriter StringWriter output = new StringWriter();
在這里,我們創(chuàng)建了具有默認(rèn)字符串緩沖區(qū)容量的字符串寫入器。但是,我們也可以指定字符串緩沖區(qū)的容量。
//創(chuàng)建具有指定字符串緩沖區(qū)容量的StringWriter StringWriter output = new StringWriter(int size);
在此,size指定字符串緩沖區(qū)的容量。
StringWriter類為Writer類中提供的不同方法提供實現(xiàn)。
write() - 向字符串寫入器寫入一個字符
write(char[] array) - 將指定數(shù)組中的字符寫入寫入器
write(String data) - 將指定的字符串寫入寫入器
import java.io.StringWriter; public class Main { public static void main(String[] args) { String data = "This is the text in the string."; try { //創(chuàng)建具有默認(rèn)字符串緩沖區(qū)容量的StringWriter StringWriter output = new StringWriter(); //將數(shù)據(jù)寫入字符串緩沖區(qū) output.write(data); //打印字符串寫入器 System.out.println("StringWriter中的數(shù)據(jù): " + output); output.close(); } catch(Exception e) { e.getStackTrace(); } } }
輸出結(jié)果
StringWriter中的數(shù)據(jù): This is the text in the string.
在上面的示例中,我們創(chuàng)建了一個名為的字符串寫入器output。
StringWriter output = new StringWriter();
然后,我們使用該write()方法將字符串?dāng)?shù)據(jù)寫入字符串緩沖區(qū)。
注意:我們已使用該toString()方法從字符串緩沖區(qū)以字符串形式獲取輸出數(shù)據(jù)。
getBuffer() -返回字符串緩沖區(qū)中存在的數(shù)據(jù)
toString() -將字符串緩沖區(qū)中存在的數(shù)據(jù)作為字符串返回
例如,
import java.io.StringWriter; public class Main { public static void main(String[] args) { String data = "This is the original data"; try { //創(chuàng)建具有默認(rèn)字符串緩沖區(qū)容量的StringWriter StringWriter output = new StringWriter(); //將數(shù)據(jù)寫入字符串緩沖區(qū) output.write(data); //返回字符串緩沖區(qū) StringBuffer stringBuffer = output.getBuffer(); System.out.println("StringBuffer: " + stringBuffer); //以字符串形式返回字符串緩沖區(qū) String string = output.toString(); System.out.println("String: " + string); output.close(); } catch(Exception e) { e.getStackTrace(); } } }
輸出結(jié)果
StringBuffer: This is the original data String: This is the original data
在這里,我們使用了getBuffer()方法來獲取字符串緩沖區(qū)中存在的數(shù)據(jù)。 而且toString()方法還以字符串形式返回字符串緩沖區(qū)中存在的數(shù)據(jù)。
要關(guān)閉字符串寫入器,我們可以使用close()方法。
但是,close()方法在StringWriter類中無效。即使調(diào)用了close()方法,我們也可以使用此類的方法。
方法 | 描述 |
---|---|
flush() | 強制將寫入器中存在的所有數(shù)據(jù)寫入字符串緩沖區(qū) |
append() | 將指定字符插入當(dāng)前寫入器 |