JavaA2Z

KAB-studio > プログラミング > JavaA2Z > PrintWriterとは

PrintWriter

日本語 印字書記
英語 print writer
ふりがな ぷりんとらいたー
フリガナ プリントライター

解説

J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名java.io.PrintWriter。
ストリームクラスWriterクラスサブクラスであり、文字出力ストリームクラスである。
文字出力ストリームクラスの中では「出力用」に位置する。
対になる入力側のクラスは存在しない。
 
文字出力ストリームの「出力用」クラス
「出力用」→「中継ぎ」→「出力先」という連携の中で、「出力用」、つまりプログラムから直接メソッドを呼ばれる側に位置する。
超有名メソッドであるprintln()メソッド及びprint()メソッドを持ち、直接プリミティブ型文字列を渡すことで、それを文字列へと変換し、文字ストリームとして「中継ぎ」もしくは「出力先」の文字出力ストリームクラスへと出力する。
この「プリミティブ型文字列文字ストリームへ変換する」のがこのクラスの使用目的である。他の文字出力ストリームクラスはwrite()メソッド文字もしくは文字列としてしか出力できないが、このクラスを用いれば通常のをそのまま渡して出力することができるわけである。
 
println()メソッドは「OSの改行文字」を出力する機能を持つ。
文字出力ストリームクラスは、文字列"\r""\n"といった改行文字が含まれていた場合、そのまま出力する。だが、システム内の改行文字、特にファイル改行文字はOS毎に異なるため、出力した改行文字が適切ではない場合がある。
PrintWriterクラスprintln()メソッドは、出力結果の最後にOSの標準改行文字を出力するため、適切な改行うことができる。
これはBufferedWriterクラスnewLine()メソッドと同様の機能だが、println()メソッドの方が便利だろう。
 
PrintWriterクラスコンストラクタに「本当の出力先」となるWriterクラスサブクラスもしくはOutputStreamクラスサブクラスを指定することで、そのストリームを「出力先」と見なす。
PrintWriterクラスprint()メソッド文字列プリミティブ型、その他クラスを出力する。文字列はそのまま、プリミティブ型文字列に変換後、その他クラスtoString()メソッド戻り値を、出力先へと出力する。
println()メソッドは、print()メソッドと同様の出力をった後、改行文字を出力する。改行文字はOSの標準改行文字を出力する。
処理終了後はclose()メソッドを呼び終了処理をう。
 
println()メソッド及びprint()メソッドを持ってはいるが、System.outフィールドクラスはこのクラスではない点に注意。
System.outフィールドPrintStreamクラスである。PrintStreamクラスバイト出力ストリームなのに対し、PrintWriterクラス文字出力ストリームである。

参考サイト


(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
import java.io.PrintWriter;
import java.io.CharArrayWriter;

public class Sample
{
    public static void main( String[] args )
    {
        CharArrayWriter charArrayWriter = null;
        PrintWriter printWriter = null;
        try
        {
            // CharArrayWriterクラスを作ります。
            charArrayWriter = new CharArrayWriter();

            // そのクラスを対象とする、PrintWriterクラスを作ります。
            printWriter = new PrintWriter( charArrayWriter );

            // 出力します。
            printWriter.println( "あいうえお" );
            printWriter.println( 100 );
            printWriter.println( true );

            // 出力結果を文字列として取得します。
            String string = charArrayWriter.toString();
            System.out.println( string );
            // あいうえお
            // 100
            // true

            // このように、文字列やプリミティブ型をそのまま渡すことで、
            // 文字列化して文字出力ストリームへと出力します。

            // 1文字単位で見てみます。
            char[] chars = charArrayWriter.toCharArray();
            forint iF1 = 0; iF1 < chars.length; ++iF1 )
            {
                // 出力します。
                System.out.println( "0x" + Integer.toHexString( 0x0000FFFF & (int)chars[iF1] ) );
            }
            // 0x3042 // あ
            // 0x3044 // い
            // 0x3046 // う
            // 0x3048 // え
            // 0x304a // お
            // 0xd    // \r
            // 0xa    // \n
            // 0x31   // 1
            // 0x30   // 0
            // 0x30   // 0
            // 0xd    // \r
            // 0xa    // \n
            // 0x74   // t
            // 0x72   // r
            // 0x75   // u
            // 0x65   // e
            // 0xd    // \r
            // 0xa    // \n

            // 注:これはWindowsでの結果です。
            // println()メソッドは、実行時のOSの標準改行文字を
            // 出力します。Windowsの場合「\r\n」です。
        }
        finally
        {
            // 最後にclose()メソッドを呼んで後処理をします。
            // また、これは必ず行うため、finally内で行います。
            if( printWriter != null )
            {
                printWriter.close();
            }

            // 最後にclose()メソッドを呼んで後処理をします。
            // また、これは必ず行うため、finally内で行います。
            if( charArrayWriter != null )
            {
                charArrayWriter.close();
            }
        }
    }
}
// Sample.java
import java.io.PrintWriter;
import java.io.CharArrayWriter;

public class Sample
{
    public static void main( String[] args )
    {
        CharArrayWriter charArrayWriter = null;
        PrintWriter printWriter = null;
        try
        {
            // CharArrayWriterクラスを作ります。
            charArrayWriter = new CharArrayWriter();

            // そのクラスを対象とする、PrintWriterクラスを作ります。
            printWriter = new PrintWriter( charArrayWriter );

            // 出力します。
            printWriter.println( "あいうえお" );
            printWriter.println( 100 );
            printWriter.println( true );

            // 出力結果を文字列として取得します。
            String string = charArrayWriter.toString();
            System.out.println( string );
            // あいうえお
            // 100
            // true

            // このように、文字列やプリミティブ型をそのまま渡すことで、
            // 文字列化して文字出力ストリームへと出力します。

            // 1文字単位で見てみます。
            char[] chars = charArrayWriter.toCharArray();
            for( int iF1 = 0; iF1 < chars.length; ++iF1 )
            {
                // 出力します。
                System.out.println( "0x" + Integer.toHexString( 0x0000FFFF & (int)chars[iF1] ) );
            }
            // 0x3042 // あ
            // 0x3044 // い
            // 0x3046 // う
            // 0x3048 // え
            // 0x304a // お
            // 0xd    // \r
            // 0xa    // \n
            // 0x31   // 1
            // 0x30   // 0
            // 0x30   // 0
            // 0xd    // \r
            // 0xa    // \n
            // 0x74   // t
            // 0x72   // r
            // 0x75   // u
            // 0x65   // e
            // 0xd    // \r
            // 0xa    // \n

            // 注:これはWindowsでの結果です。
            // println()メソッドは、実行時のOSの標準改行文字を
            // 出力します。Windowsの場合「\r\n」です。
        }
        finally
        {
            // 最後にclose()メソッドを呼んで後処理をします。
            // また、これは必ず行うため、finally内で行います。
            if( printWriter != null )
            {
                printWriter.close();
            }

            // 最後にclose()メソッドを呼んで後処理をします。
            // また、これは必ず行うため、finally内で行います。
            if( charArrayWriter != null )
            {
                charArrayWriter.close();
            }
        }
    }
}

この単語を含むページ

「みだし」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/11/10
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。