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 + "豪秒"); } } |