📜  Java中的 BufferedWriter write() 方法及示例

📅  最后修改于: 2022-05-13 01:54:32.074000             🧑  作者: Mango

Java中的 BufferedWriter write() 方法及示例

Java中BufferedWriter类中的write()方法有三种使用方式:

1. Java中BufferedWriter类的write(int)方法用于在缓冲区写入流中一次写入一个字符。

句法:

public void write(int ch)
            throws IOException

覆盖:此方法覆盖Writer类的 write() 方法。

参数:此方法接受单个参数 ch,它表示要写入的字符。

返回值:此方法不返回任何值。

异常:如果发生 I/O 错误,此方法将引发IOException

下面的程序说明了 IO 包中 BufferedWriter 类中的 write(int) 方法:

程序:

// Java program to illustrate
// BufferedWriter write(int) method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
        throws IOException
    {
  
        // Create the string Writer
        StringWriter stringWriter
            = new StringWriter();
  
        // Convert stringWriter to
        // bufferedWriter
        BufferedWriter buffWriter
            = new BufferedWriter(
                stringWriter);
  
        // Write "G" to buffer writer
        buffWriter.write(71);
  
        // Write "E" to buffer writer
        buffWriter.write(69);
  
        // Write "E" to buffer writer
        buffWriter.write(69);
  
        // Write "K" to buffer writer
        buffWriter.write(75);
  
        // Write "S" to buffer writer
        buffWriter.write(83);
  
        buffWriter.flush();
  
        System.out.println(
            stringWriter.getBuffer());
    }
}
输出:
GEEKS

2. Java中BufferedWriter类的write(String s, int off, int len)方法用于将作为参数传递的字符串的一部分写入缓冲区写入器流中。

句法:

public void write(String s,
                  int off,
                  int len)
           throws IOException

覆盖:此方法覆盖Writer类的 write() 方法。

参数:此方法接受三个参数:

  • s – 表示字符串,其中的一部分是要写入的。
  • off – 它表示开始写入的字符串中的索引。
  • len - 它表示要写入的字符串部分的长度。

返回值:此方法不返回任何值。

例外:

  • IndexOutOfBoundsException – 如果传递的索引为负数或传递的部分长度大于给定字符串的长度,则此方法抛出 IndexOutOfBoundsException。
  • IOException – 如果发生 IO 错误,此方法将引发 IOException。

注意:如果字符串部分的长度 (len) 为负数或索引为负数,则此方法应抛出 IndexOutOfBoundsException,但在这些情况下此方法不会抛出此类异常。在这种情况下,它不写入字符而不是抛出异常。

下面的程序说明了 IO 包中 BufferedWriter 类中的 write(String) 方法:

程序:

// Java program to illustrate
// BufferedWriter write(String) method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
        throws IOException
    {
  
        // Create the string Writer
        StringWriter stringWriter
            = new StringWriter();
  
        // Convert stringWriter to
        // bufferedWriter
        BufferedWriter buffWriter
            = new BufferedWriter(
                stringWriter);
  
        // Write "GEEKS" to buffer writer
        buffWriter.write(
            "GEEKSFORGEEKS", 0, 5);
  
        buffWriter.flush();
  
        System.out.println(
            stringWriter.getBuffer());
    }
}
输出:
GEEKS

3. Java中BufferedWriter类的write(char[ ] cbuf, int off, int len)方法用于将作为参数传递的字符数组的一部分写入缓冲区写入器流中。这种方法一般将数组中的字符存储到流中,并将缓冲区刷新到主流。当缓冲区长度等于数组长度时,可以直接使用主流。

句法:

public void write(char[ ] cbuf,
                  int off,
                  int len)
           throws IOException

指定者:该方法由Writer类的 write() 方法指定。

参数:此方法接受三个参数:

  • cbuf - 它表示字符数组,其中一部分是要写入的。
  • off - 它表示开始写入的数组的索引。
  • len - 它表示要写入的数组部分的长度。

返回值:此方法不返回任何值。

例外:

  • IndexOutOfBoundsException – 如果传递的索引为负数或传递的部分长度大于给定字符数组的长度,则此方法抛出 IndexOutOfBoundsException。
  • IOException – 如果发生 IO 错误,此方法将引发 IOException。

下面的程序说明了 IO 包中 BufferedWriter 类中的 write(char[ ]) 方法:

程序:

// Java program to illustrate
// BufferedWriter write(char[ ]) method
  
import java.io.*;
  
public class GFG {
    public static void main(String[] args)
        throws IOException
    {
  
        // Create the string Writer
        StringWriter stringWriter
            = new StringWriter();
  
        // Convert stringWriter to
        // bufferedWriter
        BufferedWriter buffWriter
            = new BufferedWriter(
                stringWriter);
        // Create character array
        char cbuf[] = { 'G', 'E', 'E', 'K',
                        'S', 'F', 'O', 'R' };
  
        // Write "GEEKS" to buffer writer
        buffWriter.write(cbuf, 0, 5);
  
        // Write "FOR" to buffer writer
        buffWriter.write(cbuf, 5, 3);
  
        // Again write "GEEKS" to buffer writer
        buffWriter.write(cbuf, 0, 5);
  
        buffWriter.flush();
  
        System.out.println(
            stringWriter.getBuffer());
    }
}
输出:
GEEKSFORGEEKS

参考:
1. https://docs.oracle.com/javase/10/docs/api/java Java)
2. https://docs.oracle.com/javase/10/docs/api/java Java Java, int, int)
3. https://docs.oracle.com/javase/10/docs/api/java Java, int, int)