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クラスは文字出力ストリームである。
ストリームクラス。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クラスは文字出力ストリームである。
参考サイト
// 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();
}
}
}
}
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();
}
}
}
}
// 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(); } } } }
「みだし」に含まれているページ
「解説」に含まれているページ
「サンプルプログラムとか」に含まれているページ
- classesディレクトリ
- Cookie
- doGet
- doPost
- FilterWriter
- GET
- HEAD
- HTTP
- HttpServlet
- HttpServletResponse
- HttpSession
- JSP暗黙オブジェクト「pageContext」
- JSP暗黙オブジェクト「response」
- OutputStreamWriter
- PageContext
- POST
- printStackTrace
- PrintWriter
- ServletConfig
- web.xml
- Writer
- キャッシュ
- クッキー
- クロスサイトスクリプティング
- サニタイジング
- サーブレット
- ステートレス
- セッション
- セッションID
- リクエスト
- リクエストパラメーター
- リクエストヘッダー
- レスポンス
- レスポンスヘッダー
- 入力フォーム
- 改行文字
- 文字出力ストリーム