老师帮忙看下这道题写的有没有问题!谢谢!

老师帮忙看下这道题写的有没有问题!谢谢!

package file;

import java.io.*;

/**
 * 编写一个Java程序,将100000个字符分别写入文件one.txt和文件two.txt,one用不加缓冲的文件输出流来写,two用缓冲文件输出流来写,比较用时的多少。
 * 1、用FileOutputStream写one;
 * 2、用BufferedOutputStream写two;
 * 3、写100000个字符,可以使用for循环一次写入一个。
 */
public class BufferedDemo2 {
    public static void main(String[] args) {
        //创建两个文件
        File file1 = new File("one.txt");
        if (!file1.exists()) {
            try {
                file1.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        File file2 = new File("two.txt");
        if (!file2.exists()) {
            try {
                file2.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

        //将100000个字符写入one.txt文件,不用缓冲流来写

        long startTime = System.currentTimeMillis();
        try {
            FileOutputStream fos = new FileOutputStream("one.txt", true);
            char c = 'a';
            for (int i = 0; i < 100000; i++) {
                fos.write(c);
                c++;
            }
            fos.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        long endTime = System.currentTimeMillis();
        System.out.println("不用缓冲流写入时间:"+(endTime - startTime));


        //将100000个字符写入two.txt文件,用缓冲流来写
        long startTime1 = System.currentTimeMillis();
        try {
            FileOutputStream fos1 = new FileOutputStream("two.txt",true);
            BufferedOutputStream bos1 = new BufferedOutputStream(fos1);
            char c = 'a';
            for (int i  = 0; i < 100000; i++){
               bos1.write(c);
               c++;
            }
            bos1.flush();
            fos1.close();
            bos1.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        long endTime1 = System.currentTimeMillis();
        System.out.println("用缓冲流写入时间:"+(endTime1 - startTime1));
    }
}


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,代码没有问题,但有一个小建议,建议同学计算节省的时间。修改后代码如下:

http://img1.sycdn.imooc.com//climg/5e3f7328091655bb09080634.jpg

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • VapeMage 提问者 #1
    好的,谢谢老师,这种回答是在教编程的思想,受教
    2020-02-09 10:53:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师