测试写入类
/ **
*测试结果
*
* 1.fileの長い:16キロバイト
*
FILEWRITEの時間---------- 36
outputStreamTestの時間---------- 167
bufferedOutputTestの時間--- ------- 17
bufferedWriteTestの時間---------- 14
bufferedWriteそしてFileWriterTestの時間---------- 9
bufferedWriteそしてBufferedOutputStreamTestの時間---------- 12
*
* 2.fileの長い:1600キロバイト
FILEWRITEの時間---------- 69
outputStreamTestの時間---------- 1282
bufferedOutputTestの時間---------- 68
bufferedWriteTestの時間---------- 40
bufferedWriteとFileWriterTest」 sの時間---------- 52
bufferedWriteそしてBufferedOutputStreamTestの時間---------- 37
*
* 3.fileの長い:16000キロバイト
FILEWRITEの時間---------- 555
outputStreamTestの時間---------- 12448
bufferedOutputTestさん時間---------- 599
bufferedWriteTestの時間---------- 346
bufferedWriteそしてFileWriterTestの時間---------- 316
bufferedWriteそしてBufferedOutputStreamTestの時間------ ---- 358
4.fileの長い:16万キロバイト
FILEWRITEの時間---------- 5203
outputStreamTestの時間---------- 127182
bufferedOutputTestの時間---------- 5972
bufferedWriteTestの時間---------- 3445最优
bufferedWriteとFileWriterTest」 sの時間---------- 5904
bufferedWriteそしてBufferedOutputStreamTestの時間---------- 5353
5.fileの長い:160万キロバイト
FILEWRITEの時間---------- 50416
outputStreamTestの時間を---------- 1303242
bufferedOutputTestのタイム--------- 60931
bufferedWriteTestの時間---------- 46697
bufferedWriteそしてFileWriterTestの時間---------- 48710
bufferedWriteそしてBufferedOutputStreamTestの時間-------- --64354
* /
パブリック静的な無効メイン(文字列[] args){
文字列str = "ABCDEFGHIJKLMN!"。
int型のカウント= 1000000;
TestOutputStreamトン=新しいTestOutputStream();
ロング)(開始=にSystem.currentTimeMillis。
t.fileWriteTest(数、STR);
長い端=にSystem.currentTimeMillis();
System.out.println( "FILEWRITEの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.outputStreamTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "outputStreamTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedOutputTest(数、STR);
端=のSystem.currentTimeMillis();
System.out
.println( "bufferedOutputTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedWriteTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "bufferedWriteTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedWriteAndFileWriterTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "bufferedWriteそしてFileWriterTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedWriteAndBufferedOutputStreamTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "bufferedWriteそしてBufferedOutputStreamTestの時間---------" +(開始-終了));
公共のボイドoutputStreamTest(int型の数、文字列str){
ファイルf =新しいファイル( "F:test1.txtという");
OutputStreamのOS = NULL;
試す{
OSは=新しいたFileOutputStream(F)。
以下のために(INT I 0 =; I <数; I ++){
os.write(str.getBytes())。
}
os.flush()。
System.out.println( "ファイルの長い:" + f.length());
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}最後に{
試み{
にos.close()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
/ **
* 2按字节缓冲写入なBufferedOutputStream
*
* @param数写入循环次数
* @param strの写入字符串
* /
パブリック無効bufferedOutputTest(int型の数、文字列str){
ファイルf =新しいファイル( "F :test2.txtという名前");
BufferedOutputStreamがBOS = NULL;
{試みる
のOutputStream OS =新しいたFileOutputStream(F)。
BOS =新しいBufferedOutputStreamが(OS);
以下のために(INT I 0 =; I <数; I ++){
bos.write(str.getBytes())。
}
bos.flush()。
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
} 最終的に {
{試みる
bos.closeを();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
/ **
* 3按字符写入てFileWriter
*
* @param数写入循环次数
* @param strの写入字符串
* /
パブリック無効fileWriteTest(int型の数、文字列str){
ファイルf =新しいファイル(」 F:test.txtの");
ライターライター= NULL;
試し{
作家は=新しいてFileWriter(F);
以下のために(INT I 0 =; I <数; I ++){
writer.write(STR)。
}
writer.flush()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
} 最終的に {
{試みる
writer.closeを();
}キャッチ(例外e){
e.printStackTrace();
}
}
}
/ **
* 4按字符缓冲写入BufferedWriterの
*
* @paramカウント写入循环次数
* @param STR写入字符串
* /
公共ボイドbufferedWriteTest(INT数、文字列str){
ファイルf =新しいファイル( "F:test3.txt");
OutputStreamWriterライター= NULL;
BufferedWriterのBW = NULL;
{試みる
のOutputStream OS =新しいたFileOutputStream(F)。
ライター=新しいのOutputStreamWriter(OS);
BW =新しいBufferedWriterの(作家);
以下のために(INT I 0 =; I <数; I ++){
bw.write(STR);
}
bw.flush();
IF(f.exists()){
f.delete();
}
}キャッチ(にFileNotFoundException E){
e.printStackTrace();
}キャッチ(IOExceptionをE){
e.printStackTrace();
} {最後に
試し{
bw.close();
}キャッチ(IOExceptionをEは){
e.printStackTrace();
}
}
}
/ **
*文字バッファに書き込まれた5となBufferedOutputStreamザ・BufferedWriterの、。
*
* @param書き込みサイクルの数をカウント
する文字列を書く@param strの*
* /
公共のボイドbufferedWriteAndBufferedOutputStreamTest(int型の数、文字列str){
ファイルf =新しいファイル( "F:test4.txt");
BufferedOutputStreamがBOS = NULL;
OutputStreamWriterライター= NULL;
BufferedWriterのBW = NULL;
{試みる
のOutputStream OS =新しいたFileOutputStream(F)。
BOS =新しいBufferedOutputStreamが(OS);
ライター=新しいのOutputStreamWriter(BOS);
BW =新しいBufferedWriterの(作家);
以下のために(INT I 0 =; I <数; I ++){
bw.write(STR)。
}
bw.flush()。
IF(f.exists()){
f.delete()。
System.out.println( "削除---");
}
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionをE){
e.printStackTrace();
} {最後に
試し{
bw.close();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
}
}
/ **
* 6は、文字バッファとしてFileWriter BufferedWriterので書かれている
*
* @paramのCOUNTの書き込みサイクル
* @param strの文字列の書き込み
* /
パブリック無効bufferedWriteAndFileWriterTest(int型COUNT、文字列STR){
TEST5:新しいF新しいファイルファイル=(」Fを。 TXT「);
てFileWriter FW = NULL;
BufferedWriterの、BW = NULL;
試み{
FW =新しい新しいてFileWriter(F);
BW =新しいBufferedWriterの(FW)。
以下のために(INT I 0 =; I <数; I ++){
bw.write(STR)。
}
bw.flush()。
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}最後に{
{試みる
bw.closeを();
IF(f.exists()){
f.delete()。
}
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
总结。
1及び2に加えて、文字のバイト数によって分類した場合、残りは文字によってファイルに書き込まれ、文字が通常より速く、書き込みバイトよりもある;のOutputStreamWriterてFileWriter親クラスという、彼らは両方とも実装され、JavaのAPIを理解見ますライタークラス、この時点から、この方法は4と6の間にほとんど差があり、そこにわずかな時間差であるが、内部メカニズムは同じですが、この方法は、6比較的簡単ですが、少しは、私は方法4を使用するために使用される変数の定義は、それが思わあまりに後変更の下で。
/ **
*测试结果
*
* 1.fileの長い:16キロバイト
*
FILEWRITEの時間---------- 36
outputStreamTestの時間---------- 167
bufferedOutputTestの時間--- ------- 17
bufferedWriteTestの時間---------- 14
bufferedWriteそしてFileWriterTestの時間---------- 9
bufferedWriteそしてBufferedOutputStreamTestの時間---------- 12
*
* 2.fileの長い:1600キロバイト
FILEWRITEの時間---------- 69
outputStreamTestの時間---------- 1282
bufferedOutputTestの時間---------- 68
bufferedWriteTestの時間---------- 40
bufferedWriteとFileWriterTest」 sの時間---------- 52
bufferedWriteそしてBufferedOutputStreamTestの時間---------- 37
*
* 3.fileの長い:16000キロバイト
FILEWRITEの時間---------- 555
outputStreamTestの時間---------- 12448
bufferedOutputTestさん時間---------- 599
bufferedWriteTestの時間---------- 346
bufferedWriteそしてFileWriterTestの時間---------- 316
bufferedWriteそしてBufferedOutputStreamTestの時間------ ---- 358
4.fileの長い:16万キロバイト
FILEWRITEの時間---------- 5203
outputStreamTestの時間---------- 127182
bufferedOutputTestの時間---------- 5972
bufferedWriteTestの時間---------- 3445最优
bufferedWriteとFileWriterTest」 sの時間---------- 5904
bufferedWriteそしてBufferedOutputStreamTestの時間---------- 5353
5.fileの長い:160万キロバイト
FILEWRITEの時間---------- 50416
outputStreamTestの時間を---------- 1303242
bufferedOutputTestのタイム--------- 60931
bufferedWriteTestの時間---------- 46697
bufferedWriteそしてFileWriterTestの時間---------- 48710
bufferedWriteそしてBufferedOutputStreamTestの時間-------- --64354
* /
パブリック静的な無効メイン(文字列[] args){
文字列str = "ABCDEFGHIJKLMN!"。
int型のカウント= 1000000;
TestOutputStreamトン=新しいTestOutputStream();
ロング)(開始=にSystem.currentTimeMillis。
t.fileWriteTest(数、STR);
長い端=にSystem.currentTimeMillis();
System.out.println( "FILEWRITEの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.outputStreamTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "outputStreamTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedOutputTest(数、STR);
端=のSystem.currentTimeMillis();
System.out
.println( "bufferedOutputTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedWriteTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "bufferedWriteTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedWriteAndFileWriterTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "bufferedWriteそしてFileWriterTestの時間---------" +(開始-終了));
START =のSystem.currentTimeMillis();
t.bufferedWriteAndBufferedOutputStreamTest(数、STR);
端=のSystem.currentTimeMillis();
System.out.println( "bufferedWriteそしてBufferedOutputStreamTestの時間---------" +(開始-終了));
公共のボイドoutputStreamTest(int型の数、文字列str){
ファイルf =新しいファイル( "F:test1.txtという");
OutputStreamのOS = NULL;
試す{
OSは=新しいたFileOutputStream(F)。
以下のために(INT I 0 =; I <数; I ++){
os.write(str.getBytes())。
}
os.flush()。
System.out.println( "ファイルの長い:" + f.length());
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}最後に{
試み{
にos.close()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
/ **
* 2按字节缓冲写入なBufferedOutputStream
*
* @param数写入循环次数
* @param strの写入字符串
* /
パブリック無効bufferedOutputTest(int型の数、文字列str){
ファイルf =新しいファイル( "F :test2.txtという名前");
BufferedOutputStreamがBOS = NULL;
{試みる
のOutputStream OS =新しいたFileOutputStream(F)。
BOS =新しいBufferedOutputStreamが(OS);
以下のために(INT I 0 =; I <数; I ++){
bos.write(str.getBytes())。
}
bos.flush()。
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
} 最終的に {
{試みる
bos.closeを();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
/ **
* 3按字符写入てFileWriter
*
* @param数写入循环次数
* @param strの写入字符串
* /
パブリック無効fileWriteTest(int型の数、文字列str){
ファイルf =新しいファイル(」 F:test.txtの");
ライターライター= NULL;
試し{
作家は=新しいてFileWriter(F);
以下のために(INT I 0 =; I <数; I ++){
writer.write(STR)。
}
writer.flush()。
}キャッチ(IOExceptionを電子){
e.printStackTrace();
} 最終的に {
{試みる
writer.closeを();
}キャッチ(例外e){
e.printStackTrace();
}
}
}
/ **
* 4按字符缓冲写入BufferedWriterの
*
* @paramカウント写入循环次数
* @param STR写入字符串
* /
公共ボイドbufferedWriteTest(INT数、文字列str){
ファイルf =新しいファイル( "F:test3.txt");
OutputStreamWriterライター= NULL;
BufferedWriterのBW = NULL;
{試みる
のOutputStream OS =新しいたFileOutputStream(F)。
ライター=新しいのOutputStreamWriter(OS);
BW =新しいBufferedWriterの(作家);
以下のために(INT I 0 =; I <数; I ++){
bw.write(STR);
}
bw.flush();
IF(f.exists()){
f.delete();
}
}キャッチ(にFileNotFoundException E){
e.printStackTrace();
}キャッチ(IOExceptionをE){
e.printStackTrace();
} {最後に
試し{
bw.close();
}キャッチ(IOExceptionをEは){
e.printStackTrace();
}
}
}
/ **
*文字バッファに書き込まれた5となBufferedOutputStreamザ・BufferedWriterの、。
*
* @param書き込みサイクルの数をカウント
する文字列を書く@param strの*
* /
公共のボイドbufferedWriteAndBufferedOutputStreamTest(int型の数、文字列str){
ファイルf =新しいファイル( "F:test4.txt");
BufferedOutputStreamがBOS = NULL;
OutputStreamWriterライター= NULL;
BufferedWriterのBW = NULL;
{試みる
のOutputStream OS =新しいたFileOutputStream(F)。
BOS =新しいBufferedOutputStreamが(OS);
ライター=新しいのOutputStreamWriter(BOS);
BW =新しいBufferedWriterの(作家);
以下のために(INT I 0 =; I <数; I ++){
bw.write(STR)。
}
bw.flush()。
IF(f.exists()){
f.delete()。
System.out.println( "削除---");
}
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionをE){
e.printStackTrace();
} {最後に
試し{
bw.close();
}キャッチ(IOExceptionをE){
e.printStackTrace();
}
}
}
/ **
* 6は、文字バッファとしてFileWriter BufferedWriterので書かれている
*
* @paramのCOUNTの書き込みサイクル
* @param strの文字列の書き込み
* /
パブリック無効bufferedWriteAndFileWriterTest(int型COUNT、文字列STR){
TEST5:新しいF新しいファイルファイル=(」Fを。 TXT「);
てFileWriter FW = NULL;
BufferedWriterの、BW = NULL;
試み{
FW =新しい新しいてFileWriter(F);
BW =新しいBufferedWriterの(FW)。
以下のために(INT I 0 =; I <数; I ++){
bw.write(STR)。
}
bw.flush()。
}キャッチ(にFileNotFoundException電子){
e.printStackTrace();
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}最後に{
{試みる
bw.closeを();
IF(f.exists()){
f.delete()。
}
}キャッチ(IOExceptionを電子){
e.printStackTrace();
}
}
}
总结。
1及び2に加えて、文字のバイト数によって分類した場合、残りは文字によってファイルに書き込まれ、文字が通常より速く、書き込みバイトよりもある;のOutputStreamWriterてFileWriter親クラスという、彼らは両方とも実装され、JavaのAPIを理解見ますライタークラス、この時点から、この方法は4と6の間にほとんど差があり、そこにわずかな時間差であるが、内部メカニズムは同じですが、この方法は、6比較的簡単ですが、少しは、私は方法4を使用するために使用される変数の定義は、それが思わあまりに後変更の下で。