FileOutputStream、BufferedOutputStream、FileWriter和BufferedWriter,编写程序实现向文件写入10000次26个英文字母,比较四者性能

//郑州轻工业大学
//题号:实验二 第一题
//题目: 疫情期间,各级职能部门都要统计当天的疫情数据及时上报,所有数据都需要保存到文件中以便后继处理。请以你所学习的FileOutputStream、BufferedOutputStream、FileWriter和BufferedWriter,编写程序实现向文件写入10000次26个英文字母代替疫情信息,比较四者在向文件写入时的性能差别。(注:可以使用System.currentTimeMillis( )方法获取系统时间来判断性能差别。)
————————————————
方法
我们输入26个字母以追加的方式循环10000次
然后我们不用System.currentTimeMillis( )方法获取系统时间来判断性能差别
而是使用Date d1=new Date();方法,通过d1和d2的差异来获取时间差

四种方法代码如下

import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

public class FileWriterUse {
    public FileWriterUse() {
        String s = "abcdefghijklmnopqrstuvwxyz";
        byte[] b=s.getBytes();
        Date d1=new Date();
        try {
            FileWriter f=new FileWriter("D:\\javastudent\\java下学期实验二\\src\\任务一\\3.text",true);
            for (int i=0;i<10000;i++)
                f.write(s);
            Date d2=new Date();
            System.out.println("BufferedOutputStream用时:"+(d2.getTime()-d1.getTime()));

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        new FileWriterUse();
    }
}

————

import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;

public class FileOutputStreamUse {

    public FileOutputStreamUse() {
        String s = "abcdefghijklmnopqrstuvwxyz";
        byte[] b1 = s.getBytes();
        Date d1 = new Date();
        try {
            FileOutputStream f1 = new FileOutputStream("D:\\javastudent\\java下学期实验二\\src\\任务一\\1.text", true);
            for (int i = 0; i < 10000; i++)
                f1.write(b1);
            f1.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        Date d2=new Date();
        System.out.println("FileOutputStream用时:"+(d2.getTime()-d1.getTime()));


    }

    public static void main(String[] args) {
        new FileOutputStreamUse();
    }

}

————`

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

public class BufferedWriterUse {
   public BufferedWriterUse(){
       String s = "abcdefghijklmnopqrstuvwxyz";
       byte[] b1 = s.getBytes();
       Date d1 = new Date();
       try {
           BufferedWriter f=new BufferedWriter(new FileWriter("D:\\javastudent\\java下学期实验二\\src\\任务一\\4.text"));
           for (int i=0;i<10000;i++)
               f.write(s);
           Date d2=new Date();
           System.out.println("BufferedOutputStream用时:"+(d2.getTime()-d1.getTime()));
       } catch (IOException e) {
           e.printStackTrace();
       }
   }

    public static void main(String[] args) {
        new BufferedWriterUse();
    }

}

——————

import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Date;

public class BufferedOutputStreamUse {
public BufferedOutputStreamUse(){
    String s = "abcdefghijklmnopqrstuvwxyz";
    byte[] b=s.getBytes();
    Date d1=new Date();

    try {
        BufferedOutputStream f1=new BufferedOutputStream(new FileOutputStream("D:\\javastudent\\java下学期实验二\\src\\任务一\\2.text",true));//ture是允许追加
        for (int i=0;i<10000;i++)
            f1.write(b);
        Date d2=new Date();
        System.out.println("BufferedOutputStream用时:"+(d2.getTime()-d1.getTime()));

    } catch (IOException e) {
        e.printStackTrace();
    }

}

    public static void main(String[] args) {
        new BufferedOutputStreamUse();
    }
}

水平有限,如有错误,还望大神指正;(^_−)☆
FileOutputStream、BufferedOutputStream、FileWriter和BufferedWriter,编写程序实现向文件写入10000次26个英文字母,比较四者性能

上一篇:jmeter组件六:Ultimate Thread Group(阶梯式减压)


下一篇:缓冲流