//其中能够实现编码的只有OutputStreamWriter和对应inputStreamReader
package net;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.*;
public class FileIoTest {
public static void main(String[] args) throws IOException {
FileOutputStream out = null; //只能输出二进制 byte
FileOutputStream outSTr = null;
BufferedOutputStream Buff = null;
FileWriter fw = null;
BufferedWriter bf = null;
WebContent webcontent =new WebContent();
String url ="http://www.baidu.com/";
String htmlContent = webcontent.getOneHtml(url);
int count = 1;// 写文件行数
try {
/****************************采用FileOutputStream方式*************************************************************/
out = new FileOutputStream(new File("D:/FileOutputStream.html"));
long begin = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
out.write(htmlContent.getBytes());
}
out.close();
long end = System.currentTimeMillis();
System.out.println("FileOutputStream执行耗时:" + (end - begin) + " 豪秒");
/************************************采用BufferedOutputStream方式********************************************************/
outSTr = new FileOutputStream(new File("D:/BufferedOutputStream.html"));
Buff = new BufferedOutputStream(outSTr);
long begin0 = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
Buff.write(htmlContent.getBytes());
}
Buff.flush();
Buff.close();
long end0 = System.currentTimeMillis();
System.out.println("BufferedOutputStream执行耗时:" + (end0 - begin0)
+ " 豪秒");
/*********************************采用FileWriter方式**********************************************************/
fw = new FileWriter("D:/FileWriter.html");
long begin3 = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
fw.write(htmlContent);
}
fw.close();
long end3 = System.currentTimeMillis();
System.out.println("FileWriter执行耗时:" + (end3 - begin3) + " 豪秒");
/************************************采用BufferWrite***********************************************************/
OutputStream o1 = new FileOutputStream("D:"+File.separator+"BufferedWriter.html");
OutputStreamWriter fw1 = new OutputStreamWriter(o1,"UTF-8");
bf = new BufferedWriter(fw1);
long begin4 = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
bf.write(htmlContent);
}
fw1.flush();
fw1.close();
long end4 = System.currentTimeMillis();
System.out.println("BufferedWriter执行耗时:" + (end4 - begin4) + " 豪秒");
} catch (Exception e) {
e.printStackTrace();
}
finally {
try {
fw.close();
Buff.close();
outSTr.close();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}