"Hi, Amigo!"

"Hi, Ellie!"

"Ngayon gusto kong sabihin sa iyo ang tungkol sa mga klase ng StringReader at StringWriter . Sa prinsipyo, hindi na magiging bago sa iyo, ngunit kung minsan ang mga klase na ito ay lubhang kapaki-pakinabang. Ngunit, sa pinakakaunti, gusto kong malaman mo na mayroon sila."

"Ang mga klase na ito ay ang pinakasimpleng pagpapatupad ng abstract na mga klase ng Reader at Writer. At ang mga ito ay karaniwang katulad ng FileReader at FileWriter. Gayunpaman, hindi katulad ng mga iyon, ang mga ito ay hindi gumagana sa data sa isang file sa disk. Sa halip, gumagana ang mga ito sa isang String sa alaala ng JVM."

"Bakit kailangan natin ng mga ganoong klase?"

"Minsan kailangan ang mga ito. Sa esensya, ang StringReader ay isang adaptor sa pagitan ng mga klase ng String at Reader . At ang StringWriter ay isang String na nagmamana ng Writer . Oo... Masasabi kong hindi iyon ang pinakamahusay na paliwanag. ng mga halimbawa muna."

"Halimbawa, ipagpalagay na gusto mong subukan ang iyong pamamaraan, na nagbabasa ng data mula sa Reader object na ipinasa dito. Magagawa namin ito ng ganito:"

Pagbasa mula sa isang bagay ng Reader:
public static void main (String[] args) throws Exception
{
 String test = "Hi!\n My name is Richard\n I'm a photographer\n";

 // This line is key: we "convert" the String into a Reader.
 StringReader reader = new StringReader(test);

 executor(reader);
}

public static void executor(Reader reader) throws Exception
{
 BufferedReader br = new BufferedReader(reader);
 String line;
 while (line = br.readLine() != null)
 {
 System.out.println(line);
 }
}

"Sa madaling salita, kinuha lang namin ang isang String, ibinalot ito sa isang StringReader, at pagkatapos ay ipinasa iyon sa halip na isang bagay na Reader? At lahat ay babasahin mula rito tulad ng kailangan natin?"

"Oo. Hmm. At may punto ito. Ngayon, subukan natin ang mga pamamaraan ng StringWriter. Upang gawin ito, gagawin nating mas kumplikado ang halimbawa. Ngayon ay hindi na lamang nito babasahin ang mga linya at ipapakita ang mga ito sa screen, sa halip. babaligtarin nito ang mga ito at ilalabas ang mga ito sa object ng manunulat. Halimbawa:"

Pagbasa mula sa bagay ng mambabasa at pagsulat sa bagay ng manunulat:
public static void main (String[] args) throws Exception
{
 // The Reader must read this String.
 String test = "Hi!\n My name is Richard\n I'm a photographer\n";

 // Wrap the String in a StringReader.
 StringReader reader = new StringReader(test);

 // Create a StringWriter object.
 StringWriter writer = new StringWriter();

 // Copy strings from the Reader to the Writer, after first reversing them.
 executor(reader, writer);

 // Get the text that was written to the Writer.
 String result = writer.toString();

 // Display the text from the Writer on the screen.
 System.out.println("Result: "+ result);
}

public static void executor(Reader reader, Writer writer) throws Exception
{
 BufferedReader br = new BufferedReader(reader);
String line;

 // Read a string from the Reader.
while (line = br.readLine()) != null)
 {

 // Reverse the string.
  StringBuilder sb = new StringBuilder(line);
  String newLine = sb.reverse().toString();

 // Write the string to the Writer.
  writer.write(newLine);
 }
}

"Gumawa kami ng StringWriter object na naglalaman ng string na nag-iimbak ng lahat ng nakasulat sa manunulat na ito . At para makuha ito, kailangan mo lang tawagan ang toString () method."

"Hmm. Kahit papaano ay tila napakadali ng lahat. Gumagana ang paraan ng tagapagpatupad sa mga stream ng reader at manunulat , ngunit nagtatrabaho kami sa mga string sa pangunahing pamamaraan.

"Ganun ba talaga kasimple ang lahat?"

"Yep. Para i-convert ang String sa Reader , isulat lang ito:"

Paglikha ng isang Reader mula sa isang String
String s = "data";
Reader reader = new StringReader(s);

"At ang pag-convert ng isang StringWriter sa isang String ay mas madali:"

Pagkuha ng String mula sa isang Manunulat
Writer writer = new StringWriter();
/* Here we write a bunch of data to the writer */
String result = writer.toString();

"These are excellent classes, in my opinion. Thanks for telling me about them, Ellie."