美文网首页
你应该提升你的效率

你应该提升你的效率

作者: 麻吕 | 来源:发表于2018-07-24 13:21 被阅读0次

    今天遇到有人问个问题:怎么将MultipartFile 转成file文件的?

    很快有人便在群里回复了,如下:

    InputStream src = null;
    OutputStream dst = null;
    File dstFile = new File("/filepath/filename");
    try{
        src = multipartFile.getInputStream();
        dst = new FileOutputStream(dstFile);
        IOUtils.copy(src, dst);
    } finally {
        IOUtils.closeQuietly(dst);
        IOUtils.closeQuietly(src);
    }
    

    其实回答还不错,还使用了下IOUtils,而不是像下面(PS:真的不想酱紫写,好麻烦):

    InputStream src = null;
    OutputStream dst = null;
    File dstFile = new File("/filepath/filename");
    try{
        src = multipartFile.getInputStream();
        dst = new FileOutputStream(dstFile);
        BufferedInputStream bufferedInputStream = new BufferedInputStream(src);
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(dst);
        int index=0;
        byte[] buffer = new byte[4 * 1024];
        while (-1 != (index = bufferedInputStream.read(buffer))) {
            bufferedOutputStream.write(buffer, 0, index);
        }
    } finally {
        //关闭流
    }
    

    代码量有了进一步提升,对于刚入门java的童鞋,流的操作一定要熟练,但是到了工作中,我觉得就不可取了,需要进一步提升效率来解放自己,在此案例中,其实有一种更简单的写法:

    File dstFile = new File("/filepath/filename");
    multipartFile.transferTo(dstFile);
    

    你没看错,只有2行就把这个需求搞定了(以上代码都是在方法上throws异常,故没有异常处理)。所以以代码量来考查工作量其实是有根本性的问题的,它泯灭了开发中的一大乐趣——封装。
    在我们日常生活中我们经常会遇到这样的情况:

    1. 你去找一个人要一个文件,找到一个大文件夹,然后一个文件夹一个文件夹的开始找,而有的人只是打开一个搜索框,输入几个关键字就找到了。
    2. 明明可以一个快捷键搞定的操作,一定要通过鼠标点好多下
    3. 明明有现成的工具,却一定要自己coding一个无二的出来,还不封装。

    工具的出现为的就是解决我们效率问题,合理使用工具,了解工具能够让我们的日常更有效率,如何了解工具呢?
    给大家一个建议:在拿到一个工具(第三方jar)时,先将其所有的功能(api)通读一遍。
    但是效率并不是简单的用几个工具,多学点东西就能够提高的。要的是一种意识,一种愿意前期付出,后期收获的心态,如果说得更大些,就是放空心态,只有把自己完全放空,才能接受更多的新知识。

    相关文章

      网友评论

          本文标题:你应该提升你的效率

          本文链接:https://www.haomeiwen.com/subject/qicemftx.html