2019年05月25日(星期六)  农历:己亥年四月廿一

作者:三年。分类: JAVA

 项目中用到了图片的上传,对于上传过程中,图片的复制项目组用了两种方法,一种是以java的IO流,另外一种是用org.apache.commons.io.FileUtils的工具类,今天我测试了一下,单纯考虑文件的复制效率,apache的工具类的效率是普通io流读取的3倍。

下面是测试源码:

public class ImageTest {

public static void main(String[] args) throws IOException {

IOTest();

}

public static void fileUtilsTest() throws IOException {

// 趋近13毫秒后,就保持这个数值

File srcFile = new File("D:/1.apk");

File destFile = new File("E:/2.apk");

long sum = 0;

for (int i = 0; i < 10; i++) {

long startTime = System.currentTimeMillis();

FileUtils.copyFile(srcFile, destFile);

long endTime = System.currentTimeMillis();

sum += (endTime - startTime);

}

long average = sum / 10;

System.out.println("耗时" + average + "豪秒");

}

public static void IOTest() throws IOException {

// 50毫秒

File srcFile = new File("D:/1.apk");

File destFile = new File("E:/2.apk");

long sum = 0;

for (int i = 0; i < 10; i++) {

long startTime = System.currentTimeMillis();

InputStream is = new FileInputStream(srcFile);

// 把图片写入到上面设置的路径里

OutputStream os = new FileOutputStream(destFile);

byte[] buffer = new byte[400];

int length = 0;

while ((length = is.read(buffer)) > 0) {

os.write(buffer, 0, length);

}

is.close();

os.close();

long endTime = System.currentTimeMillis();

sum += (endTime - startTime);

}

long average = sum / 10;

System.out.println("耗时" + average + "豪秒");

}

}

温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!

已有 0/1354 人参与

发表评论:



手Q扫描加入Java初学者群