📌  相关文章
📜  Java StringWriter类

📅  最后修改于: 2020-09-26 15:32:24             🧑  作者: Mango

在本教程中,我们将借助示例学习Java StringWriter及其子类。

java.io包的StringWriter类可用于将数据(以字符)写入字符串缓冲区。

它扩展了抽象类Writer

The StringWriter class is a subclass of Java Writer.

注意 :在Java中, 字符串缓冲区被视为可变字符串。也就是说,我们可以修改字符串缓冲区。要将字符串缓冲区转换为字符串,我们可以使用toString()方法。


创建一个StringWriter

为了创建StringWriter ,我们必须首先导入java.io.StringWriter包。导入包后,就可以创建字符串编写器了。

// Creates a StringWriter
StringWriter output = new StringWriter();

在这里,我们已经创建了默认的字符串缓冲区容量的字符串 writer。但是,我们也可以指定字符串缓冲区的容量。

// Creates a StringWriter with specified string buffer capacity
StringWriter output = new StringWriter(int size);

在此, 大小指定字符串缓冲区的容量。


StringWriter的方法

StringWriter类为Writer类中提供的不同方法提供实现。

write()方法

  • write() -将单个字符写入字符串编写器
  • write(char[] array) -将指定数组中的字符写入writer
  • write(String data) -将指定的字符串写入writer

示例:Java StringWriter

import java.io.StringWriter;

public class Main {
  public static void main(String[] args) {

    String data = "This is the text in the string.";

    try {
      // Create a StringWriter with default string buffer capacity
      StringWriter output = new StringWriter();

      // Writes data to the string buffer
      output.write(data);

      // Prints the string writer
      System.out.println("Data in the StringWriter: " + output);

      output.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

输出

Data in the StringWriter: This is the text in the string.

在上面的示例中,我们创建了一个名为output的字符串编写器。

StringWriter output = new StringWriter();

然后,我们使用write()方法将字符串数据写入字符串缓冲区。

注意 :我们已使用toString()方法从字符串缓冲区的字符串形式获取输出数据。


从StringBuffer访问数据

  • getBuffer() -返回字符串缓冲区中存在的数据
  • toString() -返回存在于字符串缓冲器中的数据作为一个字符串

例如,

import java.io.StringWriter;

public class Main {
  public static void main(String[] args) {

    String data = "This is the original data";

    try {
      // Create a StringWriter with default string buffer capacity
      StringWriter output = new StringWriter();

      // Writes data to the string buffer
      output.write(data);

      // Returns the string buffer
      StringBuffer stringBuffer = output.getBuffer();
      System.out.println("StringBuffer: " + stringBuffer);

      // Returns the string buffer in string form
      String string = output.toString();
      System.out.println("String: " + string);

      output.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

输出

StringBuffer: This is the original data
String: This is the original data

在这里,我们使用了getBuffer()方法来获取字符串缓冲区中存在的数据。方法toString()还将字符串缓冲区中存在的数据作为字符串。


close()方法

要关闭字符串编写器,我们可以使用close()方法。

但是, close()方法对StringWriter类无效。即使在调用close()方法之后,我们也可以使用此类的方法。


StringWriter的其他方法
Method Description
flush() forces to write all the data present in the writer to the string buffer
append() inserts the specified character to the current writer

要了解更多信息,请访问Java StringWriter(Java官方文档)。