PrintStream
日本語 | 書き込みストリーム |
英語 | print stream |
ふりがな | ぷりんとすとりーむ |
フリガナ | プリントストリーム |
J2SEに含まれるクラスのひとつ。パッケージも含めたクラス名はjava.io.PrintStream。
ストリームクラス。FilterOutputStreamクラスのサブクラスであり、バイト出力ストリームクラスである。
バイト出力ストリームクラスの中では「出力用」に位置する。
対になる入力側のクラスは存在しない。
バイト出力ストリームの「出力用」クラス
「出力用」→「中継ぎ」→「出力先」という連携の中で、「出力用」、つまりプログラムから直接メソッドを呼ばれる側に位置する。
超有名メソッドであるprintln()メソッド及びprint()メソッドを持ち、直接プリミティブ型や文字列を渡すことで、それをbyte型の配列へと変換し、バイトストリームとして「中継ぎ」もしくは「出力先」のバイト出力ストリームクラスへと出力する。
この「プリミティブ型や文字列をバイトストリームへ変換する」のがこのクラスの使用目的である。他のバイト出力ストリームクラスはwrite()メソッドでbyte型としてしか出力できないが、このクラスを用いれば通常の型をそのまま渡して出力することができるわけである。
PrintStreamクラスのコンストラクタに他のOutputStreamクラスのサブクラスを渡すことで、そのクラスを「出力先」として出力する。
PrintStreamクラスのprintln()メソッド及びprint()メソッドで出力する。このメソッドは各種プリミティブ型、Stringクラス、Objectクラスでオーバーロードされているため、あらゆる型を渡すことができる。プリミティブ型は文字列化したものを、ObjectクラスはtoString()メソッドの戻り値を、byte型の配列へと変換し、「出力先」のwrite()メソッドを呼び出して出力する。
処理終了後はclose()メソッドを呼び終了処理を行う。
ストリームクラス。FilterOutputStreamクラスのサブクラスであり、バイト出力ストリームクラスである。
バイト出力ストリームクラスの中では「出力用」に位置する。
対になる入力側のクラスは存在しない。
バイト出力ストリームの「出力用」クラス
「出力用」→「中継ぎ」→「出力先」という連携の中で、「出力用」、つまりプログラムから直接メソッドを呼ばれる側に位置する。
超有名メソッドであるprintln()メソッド及びprint()メソッドを持ち、直接プリミティブ型や文字列を渡すことで、それをbyte型の配列へと変換し、バイトストリームとして「中継ぎ」もしくは「出力先」のバイト出力ストリームクラスへと出力する。
この「プリミティブ型や文字列をバイトストリームへ変換する」のがこのクラスの使用目的である。他のバイト出力ストリームクラスはwrite()メソッドでbyte型としてしか出力できないが、このクラスを用いれば通常の型をそのまま渡して出力することができるわけである。
PrintStreamクラスのコンストラクタに他のOutputStreamクラスのサブクラスを渡すことで、そのクラスを「出力先」として出力する。
PrintStreamクラスのprintln()メソッド及びprint()メソッドで出力する。このメソッドは各種プリミティブ型、Stringクラス、Objectクラスでオーバーロードされているため、あらゆる型を渡すことができる。プリミティブ型は文字列化したものを、ObjectクラスはtoString()メソッドの戻り値を、byte型の配列へと変換し、「出力先」のwrite()メソッドを呼び出して出力する。
処理終了後はclose()メソッドを呼び終了処理を行う。
参考サイト
// Sample.java
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.IOException;
public class Sample
{
public static void main( String[] args )
{
ByteArrayOutputStream byteArrayOutputStream = null;
PrintStream printStream = null;
try
{
// 出力先となるByteArrayOutputStreamクラスを作ります。
byteArrayOutputStream = new ByteArrayOutputStream();
// このクラスを対象とするPrintStreamクラスを用意します。
printStream = new PrintStream( byteArrayOutputStream );
// 出力します。
printStream.println( "ABC" );
printStream.println( 100 );
// 書き込まれたバイトデータをbyte型配列として取得します。
byte[] bytes = byteArrayOutputStream.toByteArray();
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
// 出力します。
System.out.println( "0x" + Integer.toHexString( bytes[iF1] ) + " ( " + bytes[iF1] + " )" );
}
// 0x41 ( 65 ) // A
// 0x42 ( 66 ) // B
// 0x43 ( 67 ) // C
// 0xd ( 13 ) // \r
// 0xa ( 10 ) // \n
// 0x31 ( 49 ) // 1
// 0x30 ( 48 ) // 0
// 0x30 ( 48 ) // 0
// 0xd ( 13 ) // \r
// 0xa ( 10 ) // \n
// このように、println()メソッドで渡された文字列や値を、
// 文字列化して改行文字を追加して、出力先の
// バイト出力ストリームに出力します。
}
finally
{
// 処理が終わったら、最後にclose()メソッドを呼んで
// 後処理をします。また、これは必ず行うため、
// finally内で行います。
if( printStream != null )
{
printStream.close();
}
// 処理が終わったら、最後にclose()メソッドを呼んで
// 後処理をします。また、これは必ず行うため、
// finally内で行います。
try
{
if( byteArrayOutputStream != null )
{
byteArrayOutputStream.close();
}
}
catch( IOException e )
{
// close()メソッドはIOExceptionがthrows指定されているので
// 一応受け取ります。
e.printStackTrace();
}
}
}
}
import java.io.ByteArrayOutputStream;
import java.io.PrintStream;
import java.io.IOException;
public class Sample
{
public static void main( String[] args )
{
ByteArrayOutputStream byteArrayOutputStream = null;
PrintStream printStream = null;
try
{
// 出力先となるByteArrayOutputStreamクラスを作ります。
byteArrayOutputStream = new ByteArrayOutputStream();
// このクラスを対象とするPrintStreamクラスを用意します。
printStream = new PrintStream( byteArrayOutputStream );
// 出力します。
printStream.println( "ABC" );
printStream.println( 100 );
// 書き込まれたバイトデータをbyte型配列として取得します。
byte[] bytes = byteArrayOutputStream.toByteArray();
for( int iF1 = 0; iF1 < bytes.length; ++iF1 )
{
// 出力します。
System.out.println( "0x" + Integer.toHexString( bytes[iF1] ) + " ( " + bytes[iF1] + " )" );
}
// 0x41 ( 65 ) // A
// 0x42 ( 66 ) // B
// 0x43 ( 67 ) // C
// 0xd ( 13 ) // \r
// 0xa ( 10 ) // \n
// 0x31 ( 49 ) // 1
// 0x30 ( 48 ) // 0
// 0x30 ( 48 ) // 0
// 0xd ( 13 ) // \r
// 0xa ( 10 ) // \n
// このように、println()メソッドで渡された文字列や値を、
// 文字列化して改行文字を追加して、出力先の
// バイト出力ストリームに出力します。
}
finally
{
// 処理が終わったら、最後にclose()メソッドを呼んで
// 後処理をします。また、これは必ず行うため、
// finally内で行います。
if( printStream != null )
{
printStream.close();
}
// 処理が終わったら、最後にclose()メソッドを呼んで
// 後処理をします。また、これは必ず行うため、
// finally内で行います。
try
{
if( byteArrayOutputStream != null )
{
byteArrayOutputStream.close();
}
}
catch( IOException e )
{
// close()メソッドはIOExceptionがthrows指定されているので
// 一応受け取ります。
e.printStackTrace();
}
}
}
}
// Sample.java import java.io.ByteArrayOutputStream; import java.io.PrintStream; import java.io.IOException; public class Sample { public static void main( String[] args ) { ByteArrayOutputStream byteArrayOutputStream = null; PrintStream printStream = null; try { // 出力先となるByteArrayOutputStreamクラスを作ります。 byteArrayOutputStream = new ByteArrayOutputStream(); // このクラスを対象とするPrintStreamクラスを用意します。 printStream = new PrintStream( byteArrayOutputStream ); // 出力します。 printStream.println( "ABC" ); printStream.println( 100 ); // 書き込まれたバイトデータをbyte型配列として取得します。 byte[] bytes = byteArrayOutputStream.toByteArray(); for( int iF1 = 0; iF1 < bytes.length; ++iF1 ) { // 出力します。 System.out.println( "0x" + Integer.toHexString( bytes[iF1] ) + " ( " + bytes[iF1] + " )" ); } // 0x41 ( 65 ) // A // 0x42 ( 66 ) // B // 0x43 ( 67 ) // C // 0xd ( 13 ) // \r // 0xa ( 10 ) // \n // 0x31 ( 49 ) // 1 // 0x30 ( 48 ) // 0 // 0x30 ( 48 ) // 0 // 0xd ( 13 ) // \r // 0xa ( 10 ) // \n // このように、println()メソッドで渡された文字列や値を、 // 文字列化して改行文字を追加して、出力先の // バイト出力ストリームに出力します。 } finally { // 処理が終わったら、最後にclose()メソッドを呼んで // 後処理をします。また、これは必ず行うため、 // finally内で行います。 if( printStream != null ) { printStream.close(); } // 処理が終わったら、最後にclose()メソッドを呼んで // 後処理をします。また、これは必ず行うため、 // finally内で行います。 try { if( byteArrayOutputStream != null ) { byteArrayOutputStream.close(); } } catch( IOException e ) { // close()メソッドはIOExceptionがthrows指定されているので // 一応受け取ります。 e.printStackTrace(); } } } }