测试写入类
/ **
*测试结果
*
* 1.file de largo: 16kb
*
tiempo de FILEWRITE ---------- 36
tiempo de outputStreamTest ---------- 167
tiempo de bufferedOutputTest --- ------- 17
tiempo de bufferedWriteTest ---------- 14
tiempo de bufferedWrite Y FileWriterTest ---------- 9
tiempo de bufferedWrite Y BufferedOutputStreamTest ---------- 12
*
* 2.file es larga: 1600kb
tiempo de FILEWRITE ---------- 69
tiempo de outputStreamTest ---------- 1282
el tiempo de bufferedOutputTest ---------- 68
tiempo de bufferedWriteTest ---------- 40
bufferedWrite Y FileWriterTest' Es hora ---------- 52
tiempo de bufferedWrite Y BufferedOutputStreamTest ---------- 37
*
* 3.file es larga: 16000kb
tiempo de FILEWRITE ---------- 555
de tiempo de outputStreamTest ---------- 12448
de bufferedOutputTest tiempo ---------- 599
tiempo de bufferedWriteTest ---------- 346
tiempo de bufferedWrite Y FileWriterTest ---------- 316
tiempo de bufferedWrite Y BufferedOutputStreamTest ------ ---- 358
4.file es larga: 160000kb
tiempo de FILEWRITE ---------- 5203
el tiempo de outputStreamTest ---------- 127182
tiempo de bufferedOutputTest ---------- 5972
tiempo de bufferedWriteTest ---------- 3445最优
bufferedWrite Y FileWriterTest' Es hora ---------- 5904
tiempo de bufferedWrite Y BufferedOutputStreamTest ---------- 5353
5.file es larga: 1600000kb
tiempo de FILEWRITE ---------- 50416
tiempo de outputStreamTest ---------- 1303242
tiempo- de bufferedOutputTest --------- 60931
tiempo de bufferedWriteTest ---------- 46697
tiempo de bufferedWrite Y FileWriterTest ---------- 48710
tiempo de bufferedWrite Y BufferedOutputStreamTest -------- --64354
* /
public static void main (String [] args) {
string cadena = "abcdefghijklmn!";
int cuenta = 1000000;
TestOutputStream t = new TestOutputStream ();
= System.currentTimeMillis largo start ();
t.fileWriteTest (recuento, str);
extremo largo = System.currentTimeMillis ();
System.out.println ( "tiempo de FILEWRITE ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.outputStreamTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de outputStreamTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedOutputTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out
.println ( "tiempo de bufferedOutputTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedWriteTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de bufferedWriteTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedWriteAndFileWriterTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de bufferedWrite Y FileWriterTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedWriteAndBufferedOutputStreamTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de bufferedWrite Y BufferedOutputStreamTest ---------" + (inicio - fin));
outputStreamTest pública vacío (int cuenta, cadena str) {
File f = new File ( "f: test1.txt");
OutputStream OS = null;
try {
os = nuevo FileOutputStream (f);
for (int i = 0; i <count; i ++) {
os.write (str.getBytes ());
}
Os.flush ();
System.out.println ( "archivo es larga:" + f.length ());
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} Catch (IOException e) {
e.printStackTrace ();
} Finally {
try {
os.close ();
} Catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
* 2按字节缓冲写入BufferedOutputStream
*
* @ param recuento写入循环次数
* @param str写入字符串
* /
público bufferedOutputTest vacío (int cuenta, cadena str) {
File f = new File ( "f : test2.txt ");
BufferedOutputStream bos = null;
try {
OutputStream OS = new FileOutputStream (f);
bos = nuevo BufferedOutputStream (os);
for (int i = 0; i <count; i ++) {
bos.write (str.getBytes ());
}
Bos.flush ();
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} Catch (IOException e) {
e.printStackTrace ();
} finalmente {
try {
bos.close ();
} Catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
* 3按字符写入FileWriter
*
* @ param recuento写入循环次数
* @param str写入字符串
* /
public void fileWriteTest (recuento int, String str) {
File f = new File (" f: test.txt ");
Escritor escritor = null;
try {
escritor = nuevo FileWriter (f);
for (int i = 0; i <count; i ++) {
writer.write (str);
}
Writer.flush ();
} Catch (IOException e) {
e.printStackTrace ();
} finalmente {
try {
writer.close ();
} Catch (Exception e) {
e.printStackTrace ();
}
}
}
/ **
* 4按字符缓冲写入BufferedWriter
*
* @ param recuento写入循环次数
* @param str写入字符串
* /
public void bufferedWriteTest (recuento int, String str) {
File f = new File ( "f: test3.txt");
OutputStreamWriter escritor = null;
BufferedWriter bw = null;
try {
OutputStream OS = new FileOutputStream (f);
escritor = nuevo OutputStreamWriter (os);
bw = new BufferedWriter (escritor);
for (int i = 0; i <count; i ++) {
bw.write (STR);
}
bw.flush ();
SI (f.exists ()) {
f.delete ();
}
} la captura (un FileNotFoundException E) {
e.printStackTrace ();
} el catch (IOException e) {
e.printStackTrace ();
} {el fin
del try {
bw.close ();
} el catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
. * escrito en la memoria intermedia de caracteres 5 y BufferedOutputStream el BufferedWriter,
*
* @ param contar el número de ciclos de escritura
* @param str escribir la cadena
* /
bufferedWriteAndBufferedOutputStreamTest pública vacío (int cuenta, cadena str) {
File f = new File ( "f: test4.txt");
BufferedOutputStream bos = null;
OutputStreamWriter escritor = null;
BufferedWriter bw = null;
try {
OutputStream OS = new FileOutputStream (f);
bos = nuevo BufferedOutputStream (os);
escritor = nuevo OutputStreamWriter (BOS);
bw = new BufferedWriter (escritor);
for (int i = 0; i <count; i ++) {
bw.write (str);
}
Bw.flush ();
if (f.exists ()) {
f.delete ();
System.out.println ( "borrar ---");
}
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} el catch (IOException e) {
e.printStackTrace ();
} {el fin
del try {
bw.close ();
} el catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
* 6 está escrito por búfer de caracteres y FileWriter BufferedWriter,
*
* @ param ciclos de escritura COUNT
* @param str escribir la cadena
* /
bufferedWriteAndFileWriterTest public void (int cuenta, cadena STR) {
archivo nueva nueva F = ( "F: Test5. TXT ");
FileWriter FW = null;
BufferedWriter, BW = null;
el try {
FW = new nuevo FileWriter (F);
bw = new BufferedWriter (fw);
for (int i = 0; i <count; i ++) {
bw.write (str);
}
Bw.flush ();
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} Catch (IOException e) {
e.printStackTrace ();
} Finally {
try {
bw.close ();
if (f.exists ()) {
f.delete ();
}
} Catch (IOException e) {
e.printStackTrace ();
}
}
}
总结:
Si se clasifican por bytes de caracteres y, además de 1 y 2, el resto se escriben en el archivo por el carácter, el carácter es generalmente más rápido que la escritura de bytes; ver java API entiende, que la clase padre OutputStreamWriter FileWriter, ambos son implementados clase de escritor, a partir de este momento, el método casi no hay diferencia entre 4 y 6, hay una ligera diferencia de tiempo, pero el mecanismo interno es el mismo, pero el método es relativamente simple 6, la definición de las variables de un pequeño, solía utilizar el método 4, parece que después de demasiado bajo el cambio.
/ **
*测试结果
*
* 1.file de largo: 16kb
*
tiempo de FILEWRITE ---------- 36
tiempo de outputStreamTest ---------- 167
tiempo de bufferedOutputTest --- ------- 17
tiempo de bufferedWriteTest ---------- 14
tiempo de bufferedWrite Y FileWriterTest ---------- 9
tiempo de bufferedWrite Y BufferedOutputStreamTest ---------- 12
*
* 2.file es larga: 1600kb
tiempo de FILEWRITE ---------- 69
tiempo de outputStreamTest ---------- 1282
el tiempo de bufferedOutputTest ---------- 68
tiempo de bufferedWriteTest ---------- 40
bufferedWrite Y FileWriterTest' Es hora ---------- 52
tiempo de bufferedWrite Y BufferedOutputStreamTest ---------- 37
*
* 3.file es larga: 16000kb
tiempo de FILEWRITE ---------- 555
de tiempo de outputStreamTest ---------- 12448
de bufferedOutputTest tiempo ---------- 599
tiempo de bufferedWriteTest ---------- 346
tiempo de bufferedWrite Y FileWriterTest ---------- 316
tiempo de bufferedWrite Y BufferedOutputStreamTest ------ ---- 358
4.file es larga: 160000kb
tiempo de FILEWRITE ---------- 5203
el tiempo de outputStreamTest ---------- 127182
tiempo de bufferedOutputTest ---------- 5972
tiempo de bufferedWriteTest ---------- 3445最优
bufferedWrite Y FileWriterTest' Es hora ---------- 5904
tiempo de bufferedWrite Y BufferedOutputStreamTest ---------- 5353
5.file es larga: 1600000kb
tiempo de FILEWRITE ---------- 50416
tiempo de outputStreamTest ---------- 1303242
tiempo- de bufferedOutputTest --------- 60931
tiempo de bufferedWriteTest ---------- 46697
tiempo de bufferedWrite Y FileWriterTest ---------- 48710
tiempo de bufferedWrite Y BufferedOutputStreamTest -------- --64354
* /
public static void main (String [] args) {
string cadena = "abcdefghijklmn!";
int cuenta = 1000000;
TestOutputStream t = new TestOutputStream ();
= System.currentTimeMillis largo start ();
t.fileWriteTest (recuento, str);
extremo largo = System.currentTimeMillis ();
System.out.println ( "tiempo de FILEWRITE ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.outputStreamTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de outputStreamTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedOutputTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out
.println ( "tiempo de bufferedOutputTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedWriteTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de bufferedWriteTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedWriteAndFileWriterTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de bufferedWrite Y FileWriterTest ---------" + (inicio - fin));
inicio = System.currentTimeMillis ();
t.bufferedWriteAndBufferedOutputStreamTest (recuento, str);
terminar = System.currentTimeMillis ();
System.out.println ( "tiempo de bufferedWrite Y BufferedOutputStreamTest ---------" + (inicio - fin));
outputStreamTest pública vacío (int cuenta, cadena str) {
File f = new File ( "f: test1.txt");
OutputStream OS = null;
try {
os = nuevo FileOutputStream (f);
for (int i = 0; i <count; i ++) {
os.write (str.getBytes ());
}
Os.flush ();
System.out.println ( "archivo es larga:" + f.length ());
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} Catch (IOException e) {
e.printStackTrace ();
} Finally {
try {
os.close ();
} Catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
* 2按字节缓冲写入BufferedOutputStream
*
* @ param recuento写入循环次数
* @param str写入字符串
* /
público bufferedOutputTest vacío (int cuenta, cadena str) {
File f = new File ( "f : test2.txt ");
BufferedOutputStream bos = null;
try {
OutputStream OS = new FileOutputStream (f);
bos = nuevo BufferedOutputStream (os);
for (int i = 0; i <count; i ++) {
bos.write (str.getBytes ());
}
Bos.flush ();
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} Catch (IOException e) {
e.printStackTrace ();
} finalmente {
try {
bos.close ();
} Catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
* 3按字符写入FileWriter
*
* @ param recuento写入循环次数
* @param str写入字符串
* /
public void fileWriteTest (recuento int, String str) {
File f = new File (" f: test.txt ");
Escritor escritor = null;
try {
escritor = nuevo FileWriter (f);
for (int i = 0; i <count; i ++) {
writer.write (str);
}
Writer.flush ();
} Catch (IOException e) {
e.printStackTrace ();
} finalmente {
try {
writer.close ();
} Catch (Exception e) {
e.printStackTrace ();
}
}
}
/ **
* 4按字符缓冲写入BufferedWriter
*
* @ param recuento写入循环次数
* @param str写入字符串
* /
public void bufferedWriteTest (recuento int, String str) {
File f = new File ( "f: test3.txt");
OutputStreamWriter escritor = null;
BufferedWriter bw = null;
try {
OutputStream OS = new FileOutputStream (f);
escritor = nuevo OutputStreamWriter (os);
bw = new BufferedWriter (escritor);
for (int i = 0; i <count; i ++) {
bw.write (STR);
}
bw.flush ();
SI (f.exists ()) {
f.delete ();
}
} la captura (un FileNotFoundException E) {
e.printStackTrace ();
} el catch (IOException e) {
e.printStackTrace ();
} {el fin
del try {
bw.close ();
} el catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
. * escrito en la memoria intermedia de caracteres 5 y BufferedOutputStream el BufferedWriter,
*
* @ param contar el número de ciclos de escritura
* @param str escribir la cadena
* /
bufferedWriteAndBufferedOutputStreamTest pública vacío (int cuenta, cadena str) {
File f = new File ( "f: test4.txt");
BufferedOutputStream bos = null;
OutputStreamWriter escritor = null;
BufferedWriter bw = null;
try {
OutputStream OS = new FileOutputStream (f);
bos = nuevo BufferedOutputStream (os);
escritor = nuevo OutputStreamWriter (BOS);
bw = new BufferedWriter (escritor);
for (int i = 0; i <count; i ++) {
bw.write (str);
}
Bw.flush ();
if (f.exists ()) {
f.delete ();
System.out.println ( "borrar ---");
}
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} el catch (IOException e) {
e.printStackTrace ();
} {el fin
del try {
bw.close ();
} el catch (IOException e) {
e.printStackTrace ();
}
}
}
/ **
* 6 está escrito por búfer de caracteres y FileWriter BufferedWriter,
*
* @ param ciclos de escritura COUNT
* @param str escribir la cadena
* /
bufferedWriteAndFileWriterTest public void (int cuenta, cadena STR) {
archivo nueva nueva F = ( "F: Test5. TXT ");
FileWriter FW = null;
BufferedWriter, BW = null;
el try {
FW = new nuevo FileWriter (F);
bw = new BufferedWriter (fw);
for (int i = 0; i <count; i ++) {
bw.write (str);
}
Bw.flush ();
} Catch (FileNotFoundException e) {
e.printStackTrace ();
} Catch (IOException e) {
e.printStackTrace ();
} Finally {
try {
bw.close ();
if (f.exists ()) {
f.delete ();
}
} Catch (IOException e) {
e.printStackTrace ();
}
}
}
总结:
Si se clasifican por bytes de caracteres y, además de 1 y 2, el resto se escriben en el archivo por el carácter, el carácter es generalmente más rápido que la escritura de bytes; ver java API entiende, que la clase padre OutputStreamWriter FileWriter, ambos son implementados clase de escritor, a partir de este momento, el método casi no hay diferencia entre 4 y 6, hay una ligera diferencia de tiempo, pero el mecanismo interno es el mismo, pero el método es relativamente simple 6, la definición de las variables de un pequeño, solía utilizar el método 4, parece que después de demasiado bajo el cambio.