精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java讀取文件夾大小的6種方法及代碼

開發 后端
這篇文章介紹了JAVA讀取文件夾大小的幾種方法實例,有需要的朋友可以參考一下。

Java讀取文件夾大小的6種方法及代碼

(一)單線程遞歸方式

 

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. public class TotalFileSizeSequential { 
  4.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  5.     // 遞歸方式 計算文件的大小 
  6.     private long getTotalSizeOfFilesInDir(final File file) { 
  7.         if (file.isFile()) 
  8.             return file.length(); 
  9.         final File[] children = file.listFiles(); 
  10.         long total = 0
  11.         if (children != null
  12.             for (final File child : children) 
  13.                 total += getTotalSizeOfFilesInDir(child); 
  14.         return total; 
  15.     } 
  16.     public static void main(final String[] args) { 
  17.         final long start = System.nanoTime(); 
  18.         final long total = new TotalFileSizeSequential() 
  19.                 .getTotalSizeOfFilesInDir(new File(fileName)); 
  20.         final long end = System.nanoTime(); 
  21.         System.out.println("Total Size: " + total); 
  22.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  23.     } 

 

(二)使用Executors.newFixedThreadPool和callable 多線程實現

 

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.ArrayList; 
  4. import java.util.Collections; 
  5. import java.util.List; 
  6. import java.util.concurrent.Callable; 
  7. import java.util.concurrent.ExecutionException; 
  8. import java.util.concurrent.ExecutorService; 
  9. import java.util.concurrent.Executors; 
  10. import java.util.concurrent.Future; 
  11. import java.util.concurrent.TimeUnit; 
  12. import java.util.concurrent.TimeoutException; 
  13. public class ConcurrentTotalFileSize { 
  14.     public static final String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  15.     class SubDirectoriesAndSize { 
  16.         final public long size; 
  17.         final public List<File> subDirectories; 
  18.         public SubDirectoriesAndSize(final long totalSize, 
  19.                 final List<File> theSubDirs) { 
  20.             size = totalSize; 
  21.             subDirectories = Collections.unmodifiableList(theSubDirs); 
  22.         } 
  23.     } 
  24.     private SubDirectoriesAndSize getTotalAndSubDirs(final File file) { 
  25.         long total = 0
  26.         final List<File> subDirectories = new ArrayList<File>(); 
  27.         if (file.isDirectory()) { 
  28.             final File[] children = file.listFiles(); 
  29.             if (children != null
  30.                 for (final File child : children) { 
  31.                     if (child.isFile()) 
  32.                         total += child.length(); 
  33.                     else 
  34.                         subDirectories.add(child); 
  35.                 } 
  36.         } 
  37.         return new SubDirectoriesAndSize(total, subDirectories); 
  38.     } 
  39.     private long getTotalSizeOfFilesInDir(final File file) 
  40.             throws InterruptedException, ExecutionException, TimeoutException { 
  41.         final ExecutorService service = Executors.newFixedThreadPool(100); 
  42.         try { 
  43.             long total = 0
  44.             final List<File> directories = new ArrayList<File>(); 
  45.             directories.add(file); 
  46.             while (!directories.isEmpty()) { 
  47.                 final List<Future<SubDirectoriesAndSize>> partialResults = new ArrayList<Future<SubDirectoriesAndSize>>(); 
  48.                 for (final File directory : directories) { 
  49.                     partialResults.add(service 
  50.                             .submit(new Callable<SubDirectoriesAndSize>() { 
  51.                                 public SubDirectoriesAndSize call() { 
  52.                                     return getTotalAndSubDirs(directory); 
  53.                                 } 
  54.                             })); 
  55.                 } 
  56.                 directories.clear(); 
  57.                 for (final Future<SubDirectoriesAndSize> partialResultFuture : partialResults) { 
  58.                     final SubDirectoriesAndSize subDirectoriesAndSize = partialResultFuture 
  59.                             .get(100, TimeUnit.SECONDS); 
  60.                     directories.addAll(subDirectoriesAndSize.subDirectories); 
  61.                     total += subDirectoriesAndSize.size; 
  62.                 } 
  63.             } 
  64.             return total; 
  65.         } finally { 
  66.             service.shutdown(); 
  67.         } 
  68.     } 
  69.     public static void main(final String[] args) throws InterruptedException, 
  70.             ExecutionException, TimeoutException { 
  71.         final long start = System.nanoTime(); 
  72.         final long total = new ConcurrentTotalFileSize() 
  73.                 .getTotalSizeOfFilesInDir(new File(fileName)); 
  74.         final long end = System.nanoTime(); 
  75.         System.out.println("Total Size: " + total); 
  76.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  77.     } 

 

(三)使用Executors.newFixedThreadPool和callable 多線程的另外一種實現

  1. package com.taobao.test; 
  2.  
  3. import java.io.File; 
  4. import java.util.ArrayList; 
  5. import java.util.List; 
  6. import java.util.concurrent.Callable; 
  7. import java.util.concurrent.ExecutionException; 
  8. import java.util.concurrent.ExecutorService; 
  9. import java.util.concurrent.Executors; 
  10. import java.util.concurrent.Future; 
  11. import java.util.concurrent.TimeUnit; 
  12. import java.util.concurrent.TimeoutException; 
  13. public class NaivelyConcurrentTotalFileSize { 
  14.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  15.     private long getTotalSizeOfFilesInDir(final ExecutorService service, 
  16.             final File file) throws InterruptedException, ExecutionException, 
  17.             TimeoutException { 
  18.         if (file.isFile()) 
  19.             return file.length(); 
  20.         long total = 0
  21.         final File[] children = file.listFiles(); 
  22.         if (children != null) { 
  23.             final List<Future<Long>> partialTotalFutures = new ArrayList<Future<Long>>(); 
  24.             for (final File child : children) { 
  25.                 partialTotalFutures.add(service.submit(new Callable<Long>() { 
  26.                     public Long call() throws InterruptedException, 
  27.                             ExecutionException, TimeoutException { 
  28.                         return getTotalSizeOfFilesInDir(service, child); 
  29.                     } 
  30.                 })); 
  31.             } 
  32.             for (final Future<Long> partialTotalFuture : partialTotalFutures) 
  33.                 total += partialTotalFuture.get(100, TimeUnit.SECONDS); 
  34.         } 
  35.         return total; 
  36.     } 
  37.     private long getTotalSizeOfFile(final String fileName) 
  38.             throws InterruptedException, ExecutionException, TimeoutException { 
  39.         final ExecutorService service = Executors.newFixedThreadPool(100); 
  40.         try { 
  41.             return getTotalSizeOfFilesInDir(service, new File(fileName)); 
  42.         } finally { 
  43.             service.shutdown(); 
  44.         } 
  45.     } 
  46.     public static void main(final String[] args) throws InterruptedException, 
  47.             ExecutionException, TimeoutException { 
  48.         final long start = System.nanoTime(); 
  49.         final long total = new NaivelyConcurrentTotalFileSize() 
  50.                 .getTotalSizeOfFile(fileName); 
  51.         final long end = System.nanoTime(); 
  52.         System.out.println("Total Size: " + total); 
  53.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  54.     } 

#p#

(四)使用CountDownLatch和AtomicLong實現多線程下的并發控制

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.concurrent.CountDownLatch; 
  4. import java.util.concurrent.ExecutorService; 
  5. import java.util.concurrent.Executors; 
  6. import java.util.concurrent.TimeUnit; 
  7. import java.util.concurrent.atomic.AtomicLong; 
  8. public class ConcurrentTotalFileSizeWLatch { 
  9.     private ExecutorService service; 
  10.     final private AtomicLong pendingFileVisits = new AtomicLong(); 
  11.     final private AtomicLong totalSize = new AtomicLong(); 
  12.     final private CountDownLatch latch = new CountDownLatch(1); 
  13.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  14.     private void updateTotalSizeOfFilesInDir(final File file) { 
  15.         long fileSize = 0
  16.         if (file.isFile()) 
  17.             fileSize = file.length(); 
  18.         else { 
  19.             final File[] children = file.listFiles(); 
  20.             if (children != null) { 
  21.                 for (final File child : children) { 
  22.                     if (child.isFile()) 
  23.                         fileSize += child.length(); 
  24.                     else { 
  25.                         pendingFileVisits.incrementAndGet(); 
  26.                         service.execute(new Runnable() { 
  27.                             public void run() { 
  28.                                 updateTotalSizeOfFilesInDir(child); 
  29.                             } 
  30.                         }); 
  31.                     } 
  32.                 } 
  33.             } 
  34.         } 
  35.         totalSize.addAndGet(fileSize); 
  36.         if (pendingFileVisits.decrementAndGet() == 0
  37.             latch.countDown(); 
  38.     } 
  39.     private long getTotalSizeOfFile(final String fileName) 
  40.             throws InterruptedException { 
  41.         service = Executors.newFixedThreadPool(100); 
  42.         pendingFileVisits.incrementAndGet(); 
  43.         try { 
  44.             updateTotalSizeOfFilesInDir(new File(fileName)); 
  45.             latch.await(100, TimeUnit.SECONDS); 
  46.             return totalSize.longValue(); 
  47.         } finally { 
  48.             service.shutdown(); 
  49.         } 
  50.     } 
  51.     public static void main(final String[] args) throws InterruptedException { 
  52.         final long start = System.nanoTime(); 
  53.         final long total = new ConcurrentTotalFileSizeWLatch() 
  54.                 .getTotalSizeOfFile(fileName); 
  55.         final long end = System.nanoTime(); 
  56.         System.out.println("Total Size: " + total); 
  57.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  58.     } 

(五)使用BlockingQueue和AtomicLong的實現

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.concurrent.ArrayBlockingQueue; 
  4. import java.util.concurrent.BlockingQueue; 
  5. import java.util.concurrent.ExecutorService; 
  6. import java.util.concurrent.Executors; 
  7. import java.util.concurrent.TimeUnit; 
  8. import java.util.concurrent.atomic.AtomicLong; 
  9. public class ConcurrentTotalFileSizeWQueue { 
  10.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  11.  
  12.     private ExecutorService service; 
  13.     final private BlockingQueue<Long> fileSizes = new ArrayBlockingQueue<Long>( 
  14.             500); 
  15.     final AtomicLong pendingFileVisits = new AtomicLong(); 
  16.     private void startExploreDir(final File file) { 
  17.         pendingFileVisits.incrementAndGet(); 
  18.         service.execute(new Runnable() { 
  19.             public void run() { 
  20.                 exploreDir(file); 
  21.             } 
  22.         }); 
  23.     } 
  24.     private void exploreDir(final File file) { 
  25.         long fileSize = 0
  26.         if (file.isFile()) 
  27.             fileSize = file.length(); 
  28.         else { 
  29.             final File[] children = file.listFiles(); 
  30.             if (children != null
  31.                 for (final File child : children) { 
  32.                     if (child.isFile()) 
  33.                         fileSize += child.length(); 
  34.                     else { 
  35.                         startExploreDir(child); 
  36.                     } 
  37.                 } 
  38.         } 
  39.         try { 
  40.             fileSizes.put(fileSize); 
  41.         } catch (Exception ex) { 
  42.             throw new RuntimeException(ex); 
  43.         } 
  44.         pendingFileVisits.decrementAndGet(); 
  45.     } 
  46.     private long getTotalSizeOfFile(final String fileName) 
  47.             throws InterruptedException { 
  48.         service = Executors.newFixedThreadPool(100); 
  49.         try { 
  50.             startExploreDir(new File(fileName)); 
  51.             long totalSize = 0
  52.             while (pendingFileVisits.get() > 0 || fileSizes.size() > 0) { 
  53.                 final Long size = fileSizes.poll(10, TimeUnit.SECONDS); 
  54.                 totalSize += size; 
  55.             } 
  56.             return totalSize; 
  57.         } finally { 
  58.             service.shutdown(); 
  59.         } 
  60.     } 
  61.     public static void main(final String[] args) throws InterruptedException { 
  62.         final long start = System.nanoTime(); 
  63.         final long total = new ConcurrentTotalFileSizeWQueue() 
  64.                 .getTotalSizeOfFile(fileName); 
  65.         final long end = System.nanoTime(); 
  66.         System.out.println("Total Size: " + total); 
  67.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  68.     } 

(六)使用jdk7的ForkJoin來實現

  1. package com.taobao.test; 
  2. import java.io.File; 
  3. import java.util.ArrayList; 
  4. import java.util.List; 
  5. import java.util.concurrent.ForkJoinPool; 
  6. import java.util.concurrent.ForkJoinTask; 
  7. import java.util.concurrent.RecursiveTask; 
  8. public class FileSize { 
  9.     private final static ForkJoinPool forkJoinPool = new ForkJoinPool(); 
  10.     public static String fileName = "C:\\Documents and Settings\\Administrator\\桌面\\monkeytalk"
  11.  
  12.     private static class FileSizeFinder extends RecursiveTask<Long> { 
  13.         final File file; 
  14.         public FileSizeFinder(final File theFile) { 
  15.             file = theFile; 
  16.         } 
  17.         @Override 
  18.         public Long compute() { 
  19.             long size = 0
  20.             if (file.isFile()) { 
  21.                 size = file.length(); 
  22.             } else { 
  23.                 final File[] children = file.listFiles(); 
  24.                 if (children != null) { 
  25.                     List<ForkJoinTask<Long>> tasks = new ArrayList<ForkJoinTask<Long>>(); 
  26.                     for (final File child : children) { 
  27.                         if (child.isFile()) { 
  28.                             size += child.length(); 
  29.                         } else { 
  30.                             tasks.add(new FileSizeFinder(child)); 
  31.                         } 
  32.                     } 
  33.                     for (final ForkJoinTask<Long> task : invokeAll(tasks)) { 
  34.                         size += task.join(); 
  35.                     } 
  36.                 } 
  37.             } 
  38.             return size; 
  39.         } 
  40.     } 
  41.     public static void main(final String[] args) { 
  42.         final long start = System.nanoTime(); 
  43.         final long total = forkJoinPool.invoke(new FileSizeFinder(new File("/home"))); 
  44.         final long end = System.nanoTime(); 
  45.         System.out.println("Total Size: " + total); 
  46.         System.out.println("Time taken: " + (end - start) / 1.0e9); 
  47.     } 
責任編輯:王雪燕 來源: codeceo
相關推薦

2024-01-31 09:24:58

2010-08-02 16:47:46

Flex

2020-06-23 09:52:31

運營效率首席信息官IT預算

2020-05-15 10:09:17

優化創新數字化轉型CIO

2019-10-08 10:28:36

Python程序員鏡音雙子

2016-10-12 13:53:38

JavaByteBufferRandomAcces

2021-02-05 08:03:52

Java

2024-08-29 08:04:14

2023-03-28 15:19:37

文件列表scandir函數

2013-10-21 14:26:04

2020-09-23 08:53:48

父文件夾模塊Python

2018-12-19 14:43:13

Linux命令搜索文件

2009-08-12 16:57:28

C#讀取文件夾

2024-03-15 11:35:11

配置文件應用程序開發

2024-08-19 01:00:00

讀取配置文件接口應用程序

2010-08-26 09:16:42

Web服務器

2020-12-22 08:15:05

Java字節流字符流

2017-11-03 10:40:25

Python復制文件方法

2009-06-26 10:05:10

獲取文件大小

2010-12-02 08:12:16

點贊
收藏

51CTO技術棧公眾號

亚洲精品国产片| www久久久久久久| 91吃瓜在线观看| 99精品欧美一区| 国产欧美亚洲精品| 国产亚洲欧美精品久久久www| 欧美1区2区3区4区| 欧美少妇一区二区| 成人在线播放网址| av在线播放网| 懂色一区二区三区免费观看| 日本一本a高清免费不卡| 二区三区四区视频| 天堂日韩电影| 日韩欧美一区中文| 美女黄色片视频| heyzo中文字幕在线| 国产精品网站导航| 九九九九精品| 国产夫妻自拍av| 日本伊人午夜精品| 97在线视频免费看| 国模无码国产精品视频| 欧洲激情综合| 精品日韩欧美在线| 红桃视频 国产| 中文在线资源| 亚洲成在线观看| 国产美女视频免费| 超碰在线国产| 久久综合九色综合久久久精品综合| 亚洲自拍欧美色图| 夜夜躁狠狠躁日日躁av| 久久一区精品| 久久久久成人精品| 91日韩中文字幕| 天天做天天爱天天爽综合网| 亚洲天堂网在线观看| 熟女人妻在线视频| 给我免费播放日韩视频| 日韩一级二级三级| 亚洲精品乱码久久久久久动漫| 中文在线中文资源| 日韩欧美高清在线视频| 男女视频网站在线观看| 高清在线视频不卡| 亚洲1区2区3区4区| 国产自产在线视频| 999精品网| 国产精品久久毛片| 久99久在线| 亚洲 国产 图片| 高潮在线视频| 亚洲va在线va天堂| www.日本少妇| 97人人爽人人澡人人精品| 一区二区视频在线看| 国产免费xxx| 综合久久2o19| 一区二区三区美女| www.国产在线播放| 成人bbav| 欧美性色19p| 无码日韩人妻精品久久蜜桃| 亚洲精品一级二级| 欧美午夜精品久久久久久超碰 | 成人免费视频网| 国产精品乱码一区二区| 国产精品自在欧美一区| 99在线观看视频| 日韩性xxxx| 久久伊人蜜桃av一区二区| 日韩精品电影网站| 999国产在线视频| 1区2区3区精品视频| 日本天堂免费a| a级片在线免费观看| 欧美性少妇18aaaa视频| 97国产一区二区精品久久呦 | 欧美性久久久| 欧美激情中文字幕在线| 日本黄色片视频| 久久福利毛片| 国产日产欧美a一级在线| 亚洲av无码专区在线| 成人的网站免费观看| 久久综合毛片| 九色porny在线| 亚洲免费电影在线| 国产精品免费成人| 人人爱人人干婷婷丁香亚洲| 日韩av一卡二卡| 国产又色又爽又高潮免费| 欧美在线亚洲| 国产激情久久久| 性中国古装videossex| 91麻豆国产在线观看| 致1999电视剧免费观看策驰影院| 91在线三级| 欧美日韩成人综合天天影院 | 欧美精品第一页在线播放| 免费的毛片视频| 国产精品资源在线看| 久久亚洲免费| av网站大全在线| 日本福利一区二区| 一二三区视频在线观看| 欧洲grand老妇人| 久久理论片午夜琪琪电影网| 国产精品国产精品国产| 99这里只有精品| 男同互操gay射视频在线看| 韩日毛片在线观看| 欧美一区二区高清| 久久久精品成人| 国产欧美丝祙| 懂色中文一区二区三区在线视频| av在线中文| 日韩精品欧美激情| 一级黄色毛毛片| 最新中文字幕第一页| 国产一级片av| 伊人影院久久| 成人福利在线视频| 青青草在线免费视频| 日本中文字幕一区二区| 91精品国产综合久久久蜜臀粉嫩| 中文字幕一区二区三区人妻电影| 欧美日韩岛国| 91精品在线国产| 91在线视频| 色婷婷av一区二区三区大白胸| 国产女主播在线播放| 97久久夜色精品国产| 国产91在线高潮白浆在线观看| wwwxxxx国产| 亚洲日本va午夜在线影院| 欧美性猛交xxx乱久交| 亚洲区小说区| 91国产中文字幕| 亚洲va天堂va欧美ⅴa在线| 国产精品久久久久影院亚瑟| 91av俱乐部| 亚洲人成网www| 91成人国产在线观看| 免费观看国产精品| 亚洲一级电影视频| 国产成人精品综合久久久久99| 97欧美在线视频| 国产一区欧美二区三区| 成年人视频在线看| 欧美日韩国产小视频| av黄色一级片| 黄色精品一区| 国产精品自拍首页| 小视频免费在线观看| 亚洲精品综合精品自拍| 91精品国产高清一区二区三密臀| 91在线视频免费观看| 97国产在线播放| 亚洲综合图色| 国产精品狠色婷| 91高清在线视频| 欧美日本高清视频在线观看| 亚洲伦理一区二区三区| 国产成人免费视频精品含羞草妖精| 国产精品8888| 久久综合社区| 国产97在线亚洲| 在线看黄色av| 日韩美女视频在线| 精品成人久久久| 久久精品人人爽人人爽| 永久免费的av网站| 黑丝一区二区| 农村寡妇一区二区三区| 久久日本片精品aaaaa国产| 免费不卡欧美自拍视频| 日日躁夜夜躁白天躁晚上躁91| 欧美网站在线观看| 亚洲不卡的av| 国产成人精品三级麻豆| 欧美黑人经典片免费观看| 欧美热在线视频精品999| 成人免费xxxxx在线观看| av电影在线免费| 伊人伊成久久人综合网小说 | 欧洲另类一二三四区| 你懂得在线观看| 成人精品gif动图一区| 北条麻妃在线视频| 亚洲欧美综合国产精品一区| 欧美资源一区| 国产精品45p| 国产精品午夜一区二区欲梦| 国产高潮在线| 久久久精品网站| 免费成人av电影| 日韩精品专区在线影院观看| 91久久国产综合久久91| 亚洲综合自拍偷拍| gv天堂gv无码男同在线观看| 成人免费黄色大片| 看看黄色一级片| 性伦欧美刺激片在线观看| 裸体大乳女做爰69| japanese国产精品| 精品欧美国产| 亚洲精品黑牛一区二区三区| 国产免费亚洲高清| 中文字幕高清在线播放| 欧美激情一级欧美精品| 日韩精品成人av| 亚洲欧美制服丝袜| 少妇又色又爽又黄的视频| 欧美一区二区三区精品| 中文在线最新版天堂| 精品国产91久久久久久老师| 一区二区视频免费看| 国产精品理论片| 一级黄色性视频| 91蝌蚪porny成人天涯| 91亚洲一线产区二线产区| 韩国一区二区视频| 一本岛在线视频| 三级成人在线视频| 日韩欧美xxxx| 久久国产一二区| 国产97在线 | 亚洲| 亚洲激情影院| av在线播放天堂| 欧美午夜不卡| 粉嫩av一区二区三区天美传媒| 精品国产乱码久久久久久果冻传媒| 精品视频一区二区三区四区| 精品久久97| 国内精品视频免费| 牛牛影视久久网| 久久草视频在线看| 欧美一区二区三区久久| 精品国产免费人成电影在线观...| 综合激情网...| 成人片在线免费看| 大奶一区二区三区| 国产精品永久入口久久久| 极品束缚调教一区二区网站| 国产日韩三区| 香蕉国产成人午夜av影院| 久久日韩精品| 国产成人精品三级高清久久91| 欧美三日本三级少妇三99| 欧美人与牛zoz0性行为| 翔田千里亚洲一二三区| 99久久综合| 日本老太婆做爰视频| 欧美精品一区二区三区久久久竹菊| 少妇久久久久久被弄到高潮| 欧美日本在线| 九一国产精品视频| 日韩电影在线观看一区| 日本肉体xxxx裸体xxx免费| 精东粉嫩av免费一区二区三区| 欧美性猛交xxxx乱大交91| 成人一道本在线| 蜜桃精品一区二区| 国产精品美女一区二区三区 | 亚洲va国产va天堂va久久| 免费精品一区| 国内外成人免费视频| 精品中文一区| 中文精品视频一区二区在线观看| 国产精品久久久久一区二区三区厕所| 99热都是精品| 中文高清一区| 欧美wwwwwww| 成人美女在线视频| 国精产品一区二区三区| 综合在线观看色| 日韩精品一区三区| 欧美性色黄大片| 亚洲av综合色区无码一二三区| 亚洲精品在线91| 黄av在线播放| 热草久综合在线| 国产在线一区不卡| 久精品国产欧美| 久久久久久久久丰满| 自拍日韩亚洲一区在线| 久久精品国产亚洲高清剧情介绍 | 国产色产综合色产在线视频| caoporn91| 色一情一乱一乱一91av| 精品区在线观看| 在线亚洲男人天堂| 日韩av激情| 国产精品成人一区二区三区吃奶| 免费一区二区三区在线视频| 欧美亚洲丝袜| 国产精品豆花视频| 日本激情综合网| 99re66热这里只有精品3直播| 91麻豆精品久久毛片一级| 偷拍亚洲欧洲综合| 国产黄a三级三级三级| 中文欧美在线视频| 深夜成人在线| 91久久精品国产91久久性色tv | 中文字幕在线日韩| 色在线中文字幕| 国产99在线播放| 久久久人成影片免费观看| 日韩 欧美 高清| 91亚洲永久精品| 青娱乐在线视频免费观看| 欧美日韩精品久久久| 国产在线视频网| 茄子视频成人在线| 国产乱论精品| 99er在线视频| 国产在线精品免费| 日本美女bbw| 欧美在线观看你懂的| 可以免费看污视频的网站在线| 午夜剧场成人观在线视频免费观看| 国产成人免费视频网站视频社区| 亚洲国产成人不卡| 久久久人人人| 青青草视频播放| 精品成人在线视频| 日本高清视频免费看| 欧美华人在线视频| 日韩在线精品强乱中文字幕| 欧洲美女和动交zoz0z| 久久精品国内一区二区三区| 91社区视频在线观看| 欧美午夜在线观看| www.在线播放| 国产精品久久久久久一区二区 | 欧美理论电影在线观看| 国产精品免费精品自在线观看| 一区二区三区欧美在线| 美女网站在线免费欧美精品| 成熟人妻av无码专区| 91成人网在线| 阿v免费在线观看| 国产精品一区二区久久精品| 成久久久网站| 五月激情婷婷在线| 1区2区3区国产精品| av小说天堂网| 欧美精品久久久久| 欧美一区自拍| 青青草av网站| 国产精品萝li| 国产成人毛毛毛片| 色综合天天综合网国产成人网| 91精品尤物| 成人综合视频在线| 国产日韩欧美一区二区三区综合| 九九热最新视频| y97精品国产97久久久久久| 国产乱码精品一区二区三区亚洲人| 一级全黄肉体裸体全过程| 国产精品一区二区x88av| 国产一卡二卡在线| 亚洲图中文字幕| 亚洲成人高清| 欧美精品卡一卡二| 久久久99久久| 国产精品视频a| 国产69精品久久久久9| 九九视频精品全部免费播放| 欧美黄色性生活| 亚洲欧美日韩一区二区| 日本激情一区二区三区| 日韩女在线观看| 亚洲色图国产| 亚洲黄色在线网站| 欧美日韩国产区一| sqte在线播放| 亚洲精品一区二区三区四区五区| 国产精品一区一区| 免费污污视频在线观看| 久久久国产成人精品| 全国精品免费看| 亚洲视频第二页| 欧美日韩免费在线观看| 日本中文字幕在线看| 国产精品白丝jk白祙| 青青草国产精品亚洲专区无| 亚洲精品在线观看av| 国产一区二区三区在线免费观看 | 欧美日韩一区二区三| 国产精品综合久久| 日韩黄色片网站| 久久久久久久久久久免费| 成久久久网站| 中文在线永久免费观看| 欧美精品第1页| 男人最爱成人网|