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();

在这里,我们创建了具有默认字符串缓冲区容量的字符串写入器。但是,我们也可以指定字符串缓冲区的容量。

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

这里,size指定了字符串缓冲区的容量。


StringWriter的方法

StringWriter类提供了Writer类中存在的各种方法的实现。

write() 方法

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

示例: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的其他方法

方法 描述
flush() 强制将写入器中的所有数据写入字符串缓冲区
append() 将指定的字符插入当前写入器

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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战