フラッシュ
日本語 | 流す |
英語 | flush |
ふりがな | ふらっしゅ |
フリガナ | フラッシュ |
出力ストリームにまとめて出力すること。
出力ストリームがファイルやネットワークの場合、こまめにデータを出力するよりも、データが貯まった時点でまとめて出力した方が効率がいい場合がある。
その場合、データを「バッファ」に貯めておき、まとめて出力する方法が取られる。
この「まとめて出力する」ことを「フラッシュ」という。
フラッシュは、バイト出力ストリームクラスであるOutputStreamクラスのflush()メソッドや、文字出力ストリームクラスのWriterクラスのflush()メソッドを呼び出すことで行う。
また、バッファいっぱいにデータが貯まった場合や、close()メソッドが呼び出されて終了処理を行う際にも行われる。
カメラの「フラッシュ」は「flash」と書き別物なので注意。
出力ストリームがファイルやネットワークの場合、こまめにデータを出力するよりも、データが貯まった時点でまとめて出力した方が効率がいい場合がある。
その場合、データを「バッファ」に貯めておき、まとめて出力する方法が取られる。
この「まとめて出力する」ことを「フラッシュ」という。
フラッシュは、バイト出力ストリームクラスであるOutputStreamクラスのflush()メソッドや、文字出力ストリームクラスのWriterクラスのflush()メソッドを呼び出すことで行う。
また、バッファいっぱいにデータが貯まった場合や、close()メソッドが呼び出されて終了処理を行う際にも行われる。
カメラの「フラッシュ」は「flash」と書き別物なので注意。
参考サイト
// Sample.java
import java.io.StringWriter;
import java.io.BufferedWriter;
import java.io.IOException;
public class Sample
{
public static void main( String[] args )
{
StringWriter stringWriter = null;
BufferedWriter bufferedWriter = null;
try
{
// StringWriterクラスを作ります。
stringWriter = new StringWriter();
// このクラスを対象とするBufferedWriterクラスを作ります。
bufferedWriter = new BufferedWriter( stringWriter );
// 文字を書き込みます。
bufferedWriter.write( 'あ' );
bufferedWriter.write( 'い' );
bufferedWriter.write( 'う' );
// 改行します。
bufferedWriter.newLine();
// 残りの文字を書き込みます。
bufferedWriter.write( "えお" );
// 出力した文字を文字列として取得します。
String string = stringWriter.toString();
// ところが、この段階ではまだ文字列が出力されていません。
System.out.println( string.length() );
// 0
// これは、バッファリングを行うためです。
// つまり、まとめて出力するために貯えているわけです。
// というわけで、まとめて出力します。これを「フラッシュ」と言います。
// フラッシュはBufferedWriterクラスのflush()メソッドで行います。
bufferedWriter.flush();
// これで出力されました。
string = stringWriter.toString();
System.out.println( string );
// あいう
// えお
}
catch( IOException e )
{
// 読み込みに失敗した際に、write()メソッドが
// IOException例外を投げます。
e.printStackTrace();
}
finally
{
// 最後にclose()メソッドを呼んで後処理をします。
// また、これは必ず行うため、finally内で行います。
try
{
if( bufferedWriter != null )
{
bufferedWriter.close();
}
}
catch( IOException e )
{
e.printStackTrace();
}
// 最後にclose()メソッドを呼んで後処理をします。
// また、これは必ず行うため、finally内で行います。
try
{
if( stringWriter != null )
{
stringWriter.close();
}
}
catch( IOException e )
{
e.printStackTrace();
}
}
}
}
import java.io.StringWriter;
import java.io.BufferedWriter;
import java.io.IOException;
public class Sample
{
public static void main( String[] args )
{
StringWriter stringWriter = null;
BufferedWriter bufferedWriter = null;
try
{
// StringWriterクラスを作ります。
stringWriter = new StringWriter();
// このクラスを対象とするBufferedWriterクラスを作ります。
bufferedWriter = new BufferedWriter( stringWriter );
// 文字を書き込みます。
bufferedWriter.write( 'あ' );
bufferedWriter.write( 'い' );
bufferedWriter.write( 'う' );
// 改行します。
bufferedWriter.newLine();
// 残りの文字を書き込みます。
bufferedWriter.write( "えお" );
// 出力した文字を文字列として取得します。
String string = stringWriter.toString();
// ところが、この段階ではまだ文字列が出力されていません。
System.out.println( string.length() );
// 0
// これは、バッファリングを行うためです。
// つまり、まとめて出力するために貯えているわけです。
// というわけで、まとめて出力します。これを「フラッシュ」と言います。
// フラッシュはBufferedWriterクラスのflush()メソッドで行います。
bufferedWriter.flush();
// これで出力されました。
string = stringWriter.toString();
System.out.println( string );
// あいう
// えお
}
catch( IOException e )
{
// 読み込みに失敗した際に、write()メソッドが
// IOException例外を投げます。
e.printStackTrace();
}
finally
{
// 最後にclose()メソッドを呼んで後処理をします。
// また、これは必ず行うため、finally内で行います。
try
{
if( bufferedWriter != null )
{
bufferedWriter.close();
}
}
catch( IOException e )
{
e.printStackTrace();
}
// 最後にclose()メソッドを呼んで後処理をします。
// また、これは必ず行うため、finally内で行います。
try
{
if( stringWriter != null )
{
stringWriter.close();
}
}
catch( IOException e )
{
e.printStackTrace();
}
}
}
}
// Sample.java import java.io.StringWriter; import java.io.BufferedWriter; import java.io.IOException; public class Sample { public static void main( String[] args ) { StringWriter stringWriter = null; BufferedWriter bufferedWriter = null; try { // StringWriterクラスを作ります。 stringWriter = new StringWriter(); // このクラスを対象とするBufferedWriterクラスを作ります。 bufferedWriter = new BufferedWriter( stringWriter ); // 文字を書き込みます。 bufferedWriter.write( 'あ' ); bufferedWriter.write( 'い' ); bufferedWriter.write( 'う' ); // 改行します。 bufferedWriter.newLine(); // 残りの文字を書き込みます。 bufferedWriter.write( "えお" ); // 出力した文字を文字列として取得します。 String string = stringWriter.toString(); // ところが、この段階ではまだ文字列が出力されていません。 System.out.println( string.length() ); // 0 // これは、バッファリングを行うためです。 // つまり、まとめて出力するために貯えているわけです。 // というわけで、まとめて出力します。これを「フラッシュ」と言います。 // フラッシュはBufferedWriterクラスのflush()メソッドで行います。 bufferedWriter.flush(); // これで出力されました。 string = stringWriter.toString(); System.out.println( string ); // あいう // えお } catch( IOException e ) { // 読み込みに失敗した際に、write()メソッドが // IOException例外を投げます。 e.printStackTrace(); } finally { // 最後にclose()メソッドを呼んで後処理をします。 // また、これは必ず行うため、finally内で行います。 try { if( bufferedWriter != null ) { bufferedWriter.close(); } } catch( IOException e ) { e.printStackTrace(); } // 最後にclose()メソッドを呼んで後処理をします。 // また、これは必ず行うため、finally内で行います。 try { if( stringWriter != null ) { stringWriter.close(); } } catch( IOException e ) { e.printStackTrace(); } } } }