当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.io.Writer用法及代码示例


这个抽象类用于写入字符流。子类必须实现的唯一方法是 write(char[], int, int)、flush() 和 close()。然而,大多数子类将重写此处定义的一些方法,以提供更高的效率和/或附加函数。
构造函数

  • 受保护Writer():创建一个新的字符流编写器,其关键部分将在编写器本身上同步。
  • 受保护的写入器(对象锁):创建一个新的字符流编写器,其关键部分将在给定对象上同步。

方法:

  • 写入器追加(char c):将指定的字符附加到此 writer。以 out.append(c) 形式调用此方法的行为方式与调用完全相同
    out.write(c)
    Syntax :public Writer append(char c)
                  throws IOException
    Parameters:
    c - The 16-bit character to append
    返回:
    This writer
    Throws:
    IOException
  • 写入器追加(CharSequence csq):将指定的字符序列附加到此 writer。以 out.append(csq) 形式调用此方法的行为方式与调用完全相同
    out.write(csq.toString())
    根据字符序列 csq 的 toString 规范,可能不会附加整个序列。例如,调用字符缓冲区的 toString 方法将返回一个子序列,其内容取决于缓冲区的位置和限制。
    Syntax :public Writer append(CharSequence csq)
                  throws IOException
    参数:
    csq - The character sequence to append. If csq is null, 
    then the four characters "null" are appended to this writer.
    返回:
    This writer
    Throws:
    IOException
  • 写入器追加(CharSequence csq,int开始,int结束):将指定字符序列的子序列附加到此 writer。将指定字符序列的子序列附加到此 writer
    Syntax :public Writer append(CharSequence csq,
                int start,
                int end)
                  throws IOException
    参数:
    csq - The character sequence from which a subsequence will be appended. 
    If csq is null, then characters will be appended as 
    if csq contained the four characters "null".
    start - The index of the first character in the subsequence
    end - The index of the character following the last character in the subsequence
    Returns:
    This writer
    Throws:
    IndexOutOfBoundsException
    IOException
  • 抽象无效close():关闭流,首先刷新它。一旦流关闭,进一步的write()或flush()调用将导致抛出IOException。关闭之前关闭的流没有任何效果。
    Syntax :public abstract void close()
                        throws IOException
    Throws:
    IOException 
  • 抽象无效flush():刷新流。如果流已在缓冲区中保存了来自各种 write() 方法的任何字符,请立即将它们写入其预期目的地。然后,如果该目的地是另一个字符或字节流,则刷新它。因此,一次 flush() 调用将刷新 Writers 和 OutputStreams 链中的所有缓冲区。
    Syntax :public abstract void flush()
                        throws IOException
    Throws:
    IOException
  • 无效写入(char[] cbuf):写入字符数组。
    Syntax :public void write(char[] cbuf)
               throws IOException
    参数:
    cbuf - Array of characters to be written
    Throws:
    IOException - If an I/O error occurs
  • 抽象无效写入(char[] cbuf,int off,int len):写入字符数组的一部分。
    Syntax :public abstract void write(char[] cbuf,
             int off,
             int len)
                        throws IOException
    参数:
    cbuf - Array of characters
    off - Offset from which to start writing characters
    len - Number of characters to write
    Throws:
    IOException
  • 无效写入(int c):写入单个字符。要写入的字符包含在给定整数值的低 16 位中; 16 个高位被忽略。
    想要支持高效单字符输出的子类应该重写此方法。
    Syntax :public void write(int c)
               throws IOException
    参数:
    c - int specifying a character to be written
    Throws:
    IOException
  • 无效写入(字符串str):写入一个字符串。
    Syntax :public void write(String str)
               throws IOException
    参数:
    str - String to be written
    Throws:
    IOException
  • 无效写入(字符串str,int关闭,intlen):写入字符串的一部分。
    Syntax :public void write(String str,
             int off,
             int len)
               throws IOException
    参数:
    str - A String
    off - Offset from which to start writing characters
    len - Number of characters to write
    Throws:
    IndexOutOfBoundsException 

程序:


//Java program demonstrating Writer methods 
  
import java.io.IOException; 
import java.io.PrintWriter; 
import java.io.Writer; 
class WriterDemo 
{ 
    public static void main(String[] args) throws IOException 
    { 
        Writer wr=new PrintWriter(System.out); 
        char c[] = {'B','C','D','E','F'}; 
        CharSequence cs = "JKL"; 
        String str = "GHI"; 
  
        //illustrating write(int c) 
        wr.write(65); 
          
        //flushing the stream 
        wr.flush(); 
          
        //illustrating write(char[] c,int off,int len) 
        wr.write(c); 
        wr.flush(); 
          
        //illustrating write(String str,int off,int len) 
        wr.write(str); 
        wr.flush(); 
          
        //illustrating append(Charsequence cs,int start,int end) 
        wr.append(cs); 
        wr.flush(); 
          
        //illustrating append(int ch) 
        wr.append('M'); 
        wr.flush(); 
  
        //closing the stream 
        wr.close(); 
    } 
} 

输出:

ABCDEFGHIJKLM


相关用法


注:本文由纯净天空筛选整理自佚名大神的英文原创作品 Java.io.Writer class in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。