黄a在线观看-黄a在线-黄a大片-黄色片在线看-黄色毛片免费-黄色大片网站

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java實(shí)現(xiàn)把文件及文件夾壓縮成zip

瀏覽:14日期:2022-09-03 15:03:06

最近碰到個(gè)需要下載zip壓縮包的需求,于是我在網(wǎng)上找了下別人寫好的zip工具類。但找了好多篇博客,總是發(fā)現(xiàn)有bug。因此就自己來寫了個(gè)工具類。這個(gè)工具類的功能為:

(1)可以壓縮文件,也可以壓縮文件夾

(2)同時(shí)支持壓縮多級(jí)文件夾,工具內(nèi)部做了遞歸處理

(3)碰到空的文件夾,也可以壓縮

(4)可以選擇是否保留原來的目錄結(jié)構(gòu),如果不保留,所有文件跑壓縮包根目錄去了,且空文件夾直接舍棄。注意:如果不保留文件原來目錄結(jié)構(gòu),在碰到文件名相同的文件時(shí),會(huì)壓縮失敗。

(5)代碼中提供了2個(gè)壓縮文件的方法,一個(gè)的輸入?yún)?shù)為文件夾路徑,一個(gè)為文件列表,可根據(jù)實(shí)際需求選擇方法。

下面直接上代碼

一、代碼

ZipUtils

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;/** * @author Nemo * @version 1.0 * @date 2019/11/5 */public class ZipUtils { private static final int BUFFER_SIZE = 2 * 1024; /** * 壓縮成ZIP 方法1 * @param sourceFile 壓縮文件夾路徑 * @param out 壓縮文件輸出流 * @param KeepDirStructure 是否保留原來的目錄結(jié)構(gòu),true:保留目錄結(jié)構(gòu); * false:所有文件跑到壓縮包根目錄下(注意:不保留目錄結(jié)構(gòu)可能會(huì)出現(xiàn)同名文件,會(huì)壓縮失敗) * @throws RuntimeException 壓縮失敗會(huì)拋出運(yùn)行時(shí)異常 */ public static void toZip(File sourceFile, OutputStream out, boolean KeepDirStructure) throws RuntimeException{ ZipOutputStream zos = null ; try { zos = new ZipOutputStream(out); compress(sourceFile,zos,sourceFile.getName(),KeepDirStructure); } catch (Exception e) { throw new RuntimeException('zip error from ZipUtils',e); }finally{ if(zos != null){try { zos.close();} catch (IOException e) { e.printStackTrace();} } } } /** * 壓縮成ZIP 方法2 * @param srcFiles 需要壓縮的文件列表 * @param out 壓縮文件輸出流 * @throws RuntimeException 壓縮失敗會(huì)拋出運(yùn)行時(shí)異常 */ public static void toZip(List<File> srcFiles , OutputStream out)throws RuntimeException { long start = System.currentTimeMillis(); ZipOutputStream zos = null ; try { zos = new ZipOutputStream(out); for (File srcFile : srcFiles) {byte[] buf = new byte[BUFFER_SIZE];zos.putNextEntry(new ZipEntry(srcFile.getName()));int len;FileInputStream in = new FileInputStream(srcFile);while ((len = in.read(buf)) != -1){ zos.write(buf, 0, len);}zos.closeEntry();in.close(); } long end = System.currentTimeMillis(); System.out.println('壓縮完成,耗時(shí):' + (end - start) +' ms'); } catch (Exception e) { throw new RuntimeException('zip error from ZipUtils',e); }finally{ if(zos != null){try { zos.close();} catch (IOException e) { e.printStackTrace();} } } } /** * 遞歸壓縮方法 * @param sourceFile 源文件 * @param zos zip輸出流 * @param name 壓縮后的名稱 * @param KeepDirStructure 是否保留原來的目錄結(jié)構(gòu),true:保留目錄結(jié)構(gòu); * false:所有文件跑到壓縮包根目錄下(注意:不保留目錄結(jié)構(gòu)可能會(huì)出現(xiàn)同名文件,會(huì)壓縮失敗) * @throws Exception */ private static void compress(File sourceFile, ZipOutputStream zos, String name, boolean KeepDirStructure) throws Exception{ byte[] buf = new byte[BUFFER_SIZE]; if(sourceFile.isFile()){ // 向zip輸出流中添加一個(gè)zip實(shí)體,構(gòu)造器中name為zip實(shí)體的文件的名字 zos.putNextEntry(new ZipEntry(name)); // copy文件到zip輸出流中 int len; FileInputStream in = new FileInputStream(sourceFile); while ((len = in.read(buf)) != -1){zos.write(buf, 0, len); } // Complete the entry zos.closeEntry(); in.close(); } else { File[] listFiles = sourceFile.listFiles(); if(listFiles == null || listFiles.length == 0){// 需要保留原來的文件結(jié)構(gòu)時(shí),需要對(duì)空文件夾進(jìn)行處理if(KeepDirStructure){ // 空文件夾的處理 zos.putNextEntry(new ZipEntry(name + '/')); // 沒有文件,不需要文件的copy zos.closeEntry();} }else {for (File file : listFiles) { // 判斷是否需要保留原來的文件結(jié)構(gòu) if (KeepDirStructure) { // 注意:file.getName()前面需要帶上父文件夾的名字加一斜杠, // 不然最后壓縮包中就不能保留原來的文件結(jié)構(gòu),即:所有文件都跑到壓縮包根目錄下了 compress(file, zos, name + '/' + file.getName(),KeepDirStructure); } else { compress(file, zos, file.getName(),KeepDirStructure); }} } } } public static void main(String[] args) throws Exception { /** 測(cè)試壓縮方法1 */ FileOutputStream fos1 = new FileOutputStream(new File('c:/mytest01.zip')); ZipUtils.toZip(new File('D:/log'), fos1,true); /** 測(cè)試壓縮方法2 */ List<File> fileList = new ArrayList<>(); fileList.add(new File('D:/Java/jdk1.7.0_45_64bit/bin/jar.exe')); fileList.add(new File('D:/Java/jdk1.7.0_45_64bit/bin/java.exe')); FileOutputStream fos2 = new FileOutputStream(new File('c:/mytest02.zip')); ZipUtils.toZip(fileList, fos2); }}

二、注意事項(xiàng)

寫該工具類時(shí),有些注意事項(xiàng)說一下:

(1)支持選擇是否保留原來的文件目錄結(jié)構(gòu),如果不保留,那么空文件夾直接不用處理。

(1)碰到空文件夾時(shí),如果需要保留目錄結(jié)構(gòu),則直接添加個(gè)ZipEntry就可以了,不過就是這個(gè)entry的名字后面需要帶上一斜杠(/)表示這個(gè)是目錄。

(2)遞歸時(shí),不需要把zip輸出流關(guān)閉,zip輸出流的關(guān)閉應(yīng)該是在調(diào)用完遞歸方法后面關(guān)閉

(3)遞歸時(shí),如果是個(gè)文件夾且需要保留目錄結(jié)構(gòu),那么在調(diào)用方法壓縮他的子文件時(shí),需要把文件夾的名字加一斜杠給添加到子文件名字前面,這樣壓縮后才有多級(jí)目錄。

三、如何在javaWeb項(xiàng)目中使用該工具類

這個(gè)工具類在web項(xiàng)目中的使用場(chǎng)景就是多文件下載,我就簡(jiǎn)單說個(gè)下載多個(gè)excel表格的案例吧。

代碼中的步驟為:

(1)創(chuàng)建一個(gè)臨時(shí)文件夾

(2)將要下載的文件生成至該臨時(shí)文件夾內(nèi)

(3)當(dāng)所有文件生成完后,獲取HttpServletResponse獲取設(shè)置下載的header

(4)調(diào)用工具類的方法,傳入上面生成的臨時(shí)文件夾路徑及response獲取的輸出流;這樣就下載出來zip包了

(5)遞歸刪除掉上面生成的臨時(shí)文件夾和文件

下面為一個(gè)示例代碼的代碼片段,不是完整代碼,簡(jiǎn)單看一下代碼中的步驟

import org.apache.commons.io.FileUtils;import java.io.*;/** * 圖片打包下載 * @author: wangzhouchao */ @ApiImplicitParams({ @ApiImplicitParam(name = 'id', value = '申請(qǐng)人id', required = true, dataType = 'Long', paramType = 'query'), }) @ApiOperation(value = '圖片打包下載', notes = '圖片打包下載') @RequestMapping(value = '/downloadPictureList', method = RequestMethod.GET) public void downloadPictureList(TProposerDataVO tProposerDataVO) { long readyStart = System.currentTimeMillis(); // ************* 1. 獲取到存在數(shù)據(jù)庫(kù)中的圖片的url ************* PictureDownloadVO picturesById = tOrderService.getPicturesByProposerDataId(tProposerDataVO.getId()); // 獲取當(dāng)前類的所在項(xiàng)目路徑 File file = null; try { file = new File(ResourceUtils.getURL('classpath:').getPath()); } catch (FileNotFoundException e) { throw new RuntimeException('獲取根目錄失敗,無法獲取文件目錄!'); } if(!file.exists()) { file = new File(''); } String absolutePath = file.getAbsolutePath(); // 要打包的文件夾列表 String order_number = picturesById.getOrder_number(); String country_name = picturesById.getCountry_name(); String visa_type = picturesById.getVisa_type(); String dirName = order_number + country_name + visa_type; // ************* 2. 創(chuàng)建要壓縮的文件夾 ************* // 根據(jù)訂單號(hào)+國(guó)家名稱+簽證類型創(chuàng)建文件夾 File dirOfOrder = new File(absolutePath, dirName); if(!dirOfOrder.exists()) { dirOfOrder.mkdirs(); } ZipOutputStream zos = null; OutputStream out = null; long readyEnd = System.currentTimeMillis(); System.out.println('準(zhǔn)備完成,耗時(shí):' + (readyEnd - readyStart) + ' ms'); try { long downStart = System.currentTimeMillis(); System.out.println('開始下載'); TProposerDataVO vo = picturesById.getProposerDataVO(); // ************* 3. 根據(jù)獲取到的圖片的url,把圖片按照想要的文件夾目錄進(jìn)行下載 ************* // 根據(jù)申請(qǐng)人姓名創(chuàng)建文件夾 File proposerFile = new File(dirOfOrder, vo.getReal_name()); if (!proposerFile.exists()) {proposerFile.mkdirs(); } // 下載申請(qǐng)人照片 if (StringUtil.checkNotNull(vo.getPhoto_url())) {System.out.println('開始下載申請(qǐng)人照片');WordExportUtil.downloadHttpUrl(DOMAIN + vo.getPhoto_url(), proposerFile.toString(), File.separator + 'photo.jpg'); } // 下載申請(qǐng)人護(hù)照首頁(yè) if (StringUtil.checkNotNull(vo.getPassport_home_page_url())) {System.out.println('開始下載申請(qǐng)人護(hù)照照片');WordExportUtil.downloadHttpUrl(DOMAIN + vo.getPassport_home_page_url(), proposerFile.toString(), File.separator + 'passport.jpg'); } // 下載申請(qǐng)人戶口本照片 if (StringUtil.checkNotNull(vo.getResidence_booklet_url())) {System.out.println('開始下載申請(qǐng)人戶口本照片');String[] booklets = vo.getResidence_booklet_url().split(',');// 創(chuàng)建戶口本照片文件夾File bookletsFile = new File(proposerFile, 'hukouben');if (!bookletsFile.exists()) { bookletsFile.mkdirs();}for (int k = 0; k < booklets.length; k++) { WordExportUtil.downloadHttpUrl(DOMAIN + booklets[k], bookletsFile.toString(), File.separator + 'residenceBooklet' + k + '.jpg');} } // 下載申請(qǐng)人身份證照片 if (StringUtil.checkNotNull(vo.getId_card_status()) && vo.getId_card_status() == 0) {System.out.println('開始下載申請(qǐng)人身份證照片');// 創(chuàng)建身份證照片文件夾File idCards = new File(proposerFile, 'idCards');if (!idCards.exists()) { idCards.mkdirs();}if (StringUtil.checkNotNull(vo.getId_card_positive_url())) { WordExportUtil.downloadHttpUrl(DOMAIN + vo.getId_card_positive_url(), idCards.toString(), File.separator + 'idCardPostive.jpg');}if (StringUtil.checkNotNull(vo.getId_card_reverse_url())) { WordExportUtil.downloadHttpUrl(DOMAIN + vo.getId_card_reverse_url(), idCards.toString(), File.separator + 'idCardReverse.jpg');} } // 下載申請(qǐng)人婚姻證明照片 if (StringUtil.checkNotNull(vo.getMar_div_card_url())) {System.out.println('開始下載申請(qǐng)人婚姻證明照片');WordExportUtil.downloadHttpUrl(DOMAIN + vo.getMar_div_card_url(), proposerFile.toString(), File.separator + 'marriage.jpg'); } // 下載申請(qǐng)人輔助資產(chǎn)照片 if (StringUtil.checkNotNull(vo.getAuxiliary_assets_url())) {System.out.println('開始下載申請(qǐng)人輔助資產(chǎn)照片');String[] auxiliarys = vo.getAuxiliary_assets_url().split(',');// 創(chuàng)建輔助資產(chǎn)照片文件夾File auxiliarysFile = new File(proposerFile, 'fuzhuzichan');if (!auxiliarysFile.exists()) { auxiliarysFile.mkdirs();}for (int k = 0; k < auxiliarys.length; k++) { WordExportUtil.downloadHttpUrl(DOMAIN + auxiliarys[k], auxiliarysFile.toString(), File.separator + 'auxiliary' + k + '.jpg');} } // 下載申請(qǐng)人居住證照片 if (StringUtil.checkNotNull(vo.getResidence_permit_url())) {System.out.println('開始下載申請(qǐng)人居住證照片');String[] residences = vo.getResidence_permit_url().split(',');// 創(chuàng)建居住證照片文件夾File residencesFile = new File(proposerFile, 'juzhuzheng');if (!residencesFile.exists()) { residencesFile.mkdirs();}for (int k = 0; k < residences.length; k++) { WordExportUtil.downloadHttpUrl(DOMAIN + residences[k], residencesFile.toString(), File.separator + 'residence' + k + '.jpg');} } // 下載申請(qǐng)人其余補(bǔ)充資料照片 if (StringUtil.checkNotNull(vo.getOther_data_url())) {System.out.println('開始下載申請(qǐng)人其余補(bǔ)充資料照片');String[] others = vo.getOther_data_url().split(',');// 創(chuàng)建其余補(bǔ)充資料照片文件夾File othersFile = new File(proposerFile, 'qitabuchongziliao');if (!othersFile.exists()) { othersFile.mkdirs();}for (int k = 0; k < others.length; k++) { WordExportUtil.downloadHttpUrl(DOMAIN + others[k], othersFile.toString(), File.separator + 'other' + k + '.jpg');} } // 下載申請(qǐng)人證明資料照片 if (StringUtil.checkNotNull(vo.getProve_url())) {System.out.println('開始下載申請(qǐng)人證明資料照片');String[] prove_urls = vo.getProve_url().split(',');// 創(chuàng)建證明資料照片文件夾File proveFile = new File(proposerFile, 'zhengmingziliao');if (!proveFile.exists()) { proveFile.mkdirs();}for (int k = 0; k < prove_urls.length; k++) { WordExportUtil.downloadHttpUrl(DOMAIN + prove_urls[k], proveFile.toString(), File.separator + 'prove' + k + '.jpg');} } long downEnd = System.currentTimeMillis(); System.out.println('下載完成,耗時(shí):' + (downEnd - downStart) + ' ms'); long zipStart = System.currentTimeMillis(); response.setContentType('application/x-zip-compressed'); response.setHeader('Content-disposition', 'attachment;filename=' + StringUtil.getUUID() + '.zip'); out = response.getOutputStream(); zos = new ZipOutputStream(out); // ************* 4. 把要壓縮的文件夾路徑、壓縮文件輸出流傳入到ZipUtils.toZip方法,對(duì)文件夾進(jìn)行壓縮 ************* // 對(duì)文件夾進(jìn)行壓縮,保留原文件夾路徑 ZipUtils.toZip(dirOfOrder, out, true); long zipEnd = System.currentTimeMillis(); System.out.println('壓縮完成,耗時(shí):' + (zipEnd - zipStart) + ' ms'); out.flush(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { throw new RuntimeException('zip error from ZipUtils', e); } finally { if (zos != null) {try { zos.close();} catch (IOException e) { e.printStackTrace();} } if (out != null) {try { zos.close(); out.close();} catch (IOException e) { e.printStackTrace();} } } // ************* 5. 刪除壓縮前準(zhǔn)備的中間文件 ************* if (dirOfOrder != null) { try {FileUtils.deleteDirectory(dirOfOrder);System.out.println('中間文件已刪除'); } catch (IOException e) {e.printStackTrace();System.out.println('中間文件刪除失敗'); } } }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 岛国一区二区 | 欧美丝袜一区二区 | 欧美精品亚洲精品日韩传电影 | 久久婷婷五月综合97色直播 | 日本少妇高潮喷水xxxxxxx | 黄色变态网站 | 国产一级大黄 | 日本三级欧美三级高潮365 | 黄色片的网站 | 丝袜国产视频 | 性欧美亚洲xxxx乳在线观看 | 久久久久无码精品国产不卡 | 性少妇videoxxⅹ中国69 | 亚洲国产精品精华液999 | 成人免费淫片aa视频免费 | 日韩精品亚洲一区 | 亚洲精品乱码久久久久久蜜桃91 | 国产精品99久久久久久www | 国产日韩在线观看视频 | 老熟妻内射精品一区 | jizzjizz国产| 国产专区精品 | 91精品国产综合久久久蜜臀九色 | 亚洲少妇毛片 | wwww亚洲熟妇久久久久 | 日本免费色 | 亚洲福利一区 | 一级真人免费毛片 | 人人曰| 国产精品丝袜www爽爽爽 | 国产三级自拍视频 | 欧美男人又粗又长又大 | 日本色妞 | 国内精品久久久久久久日韩 | 国产超碰在线观看 | 久久99精品国产麻豆婷婷 | 青娱乐国产精品 | 99久久婷婷国产综合精品青草免费 | 精品国产欧美一区二区 | jizz中国少妇高潮出水 | 亚洲中文字幕不卡无码 | 亚洲加勒比无码一区二区 | 国产女人18毛片水18精 | 高h禁伦餐桌上的肉伦水视频 | 一色桃子av大全在线播放 | 免费在线观看亚洲 | 欧美aaaaaaaaaa | 好吊操视频 | 亚洲精品国产精品乱码不卡√香蕉 | 日本欧美不卡 | 久久国产精华液 | 国产精品香蕉在线观看 | 国产欧美日韩在线在线播放 | 国产精品黄视频 | 亚洲精品合集 | 国产中文字幕在线播放 | 国产亚洲欧美日韩高清 | 精品一区二区国产 | 日韩欧美黄| 久久短视频| 人妻丰满熟妇无码区免费 | 欧美性受视频 | 亚洲国产美女精品久久久 | 377p日本欧洲亚洲大胆张筱雨 | 超碰人人在线观看 | 亚洲欧美日韩一区在线观看 | 国产成人亚洲综合无码 | 国产毛毛片 | 欧美黄色a视频 | 成年人免费在线观看 | 老司机免费在线视频 | 2024av在线播放 | 在线播放av网站 | 成人免费区一区二区三区 | 国产资源在线免费观看 | 亚洲伊人久久精品影院 | youjizz少妇| av网在线 | 国产精品综合在线 | 夜噜噜| 久久99精品久久久久久噜噜 | 黑人大战欲求不满人妻 | 亚洲六月丁香色婷婷综合久久 | 无码人妻一区二区三区免费视频 | 激情久久五月天 | 国产永久免费观看久久黄av片 | 国产主播户外勾搭人xx | 日韩精品一区二区三区三炮视频 | 一二三区精品 | 久久精品区 | 香蕉久久久 | 67194成人手机在线 | 色小妹av | 伊人中文字幕在线 | 欧美激情婷婷 | 欧美性色黄大片a级毛片视频 | 亚洲视频三区 | av一本久道久久综合久久鬼色 | 日日摸日日碰人妻无码老牲 | 国内精品卡一卡二卡三 | 在线成人亚洲 | 欧美在线激情 | 色综合久久88色综合天天人守婷 | 一线天 粉嫩 在线播放 | 国产在线v | 国产又粗又硬又猛的免费视频 | 国产偷国产偷亚洲清高动态图 | 亚洲欧美综合精品成人导航 | 亚洲精品成人网站在线观看 | 国产视频你懂的 | 久久潮| 日本视频中文字幕 | 888久久| 福利在线视频导航 | 成人天堂婷婷青青视频在线观看 | av大片免费 | 国产亚洲性欧美日韩在线观看软件 | 亚洲精品中文字幕乱码 | 久久午夜色播影院 | 亚洲欧美大片 | 中国china体内裑精亚洲日本 | 99国产精品久久久久久久日本竹 | 波多野结衣1区 | 日韩一卡2卡3卡4卡新区亚洲 | 国产成人无码一区二区在线观看 | h无码动漫在线观看 | 亚洲精品乱码久久久久久自慰 | 欧美xxxxav| 18禁肉肉无遮挡无码网站 | 无码东京热一区二区三区 | 久91| 免费国产在线视频 | 久久久午夜精品 | 久久久久久久久久久小说 | 欧美人妻日韩精品 | 99精品久久久久久久婷婷 | 怡红院a∨人人爰人人爽 | 噜噜色图| 国产一区二区三区色淫影院 | xxx一区| 欧美精品亚洲一区 | 九九热精品免费视频 | 影音先锋中文字幕无码 | av无码精品一区二区三区宅噜噜 | 色婷婷综合中文久久一本 | 国产一毛片 | 成人娱乐网 | 国产啊v在线 | 日本三级吃奶乳视频在线播放 | 日韩免费精品 | 国产真实乱全部视频 | 国产寡妇亲子伦一区二区三区四区 | 在线免费观看黄视频 | 久久综合给久久狠狠97色 | 亚洲精品乱码久久久久久蜜桃图片 | 国产午夜亚洲精品午夜鲁丝片 | 中文字幕亚洲欧美专区 | 色偷偷亚洲男人的天堂 | 秋霞av鲁丝片一区二区 | 中文字av| 成人免费淫片视频软件 | 日本三级做爰在线播放 | 国产精品视频一区二区三区无码 | 97影院手机版 | 国产成人片无码视频在线观看 | 欧美视频精品在线 | 毛片在哪里看 | 手机国产乱子伦精品视频 | 婷婷四房播播 | 免费看的黄色录像 | 久久狠狠一本精品综合网 | 久久精品h | 久久久久99精品久久久久 | 亚洲色图一区二区 | 欧美野外疯狂做受xxxx高潮 | 精品厕所偷拍各类美女tp嘘嘘 | 天堂激情网 | 久久久久久在线观看 | 色乱码一区二区三区麻豆 | 五月天激情国产综合婷婷婷 | 91www在线观看 | 欧美日韩在线精品一区二区 | 下面一进一出好爽视频 | 偷窥少妇高潮呻吟av久久免费 | 国产精品青草综合久久久久99 | 亚洲aⅴ片| 国产成人精品亚洲线观看 | 日韩视频在线观看一区 | 久久影院视频 | 欧洲熟妇色xxxx欧美老妇 | 亚洲一级色 | 国产传媒av在线 | 中日韩高清无专码区2021 | 国产精品久久久久久久久久久久午 | 久久综合久色欧美综合狠狠 | 国产日韩欧美中文 | 国产午夜精品一区理论片飘花 | 99久久伊人精品综合观看 | 色午夜| 久久国产成人精品av | 国产无套内射久久久国产 | 成人网久久 | 国产精无久久久久久久免费 | 欧美日韩大片 | 青草青视频| 国产人19毛片水真多19精品 | 嫩草嫩草嫩草嫩草嫩草 | 国产精品自在线 | 亚洲欧洲精品一区二区三区 | 女十八免费毛片视频 | 国产中文字幕在线 | 国产中文字幕视频 | 精品久久久久久亚洲精品 | 情侣酒店偷拍一区二区在线播放 | 久久久久夜夜夜精品国产 | 日韩欧美卡一卡二卡新区 | 91精品无人成人www | 欧美在线中文 | 91亚洲精品国偷拍自产 | 日韩在线视频免费观看 | 超碰资源在线 | 51精品视频在线视频观看 | 女女百合高h喷汁呻吟视频 女女百合国产免费网站 | 黄页在线播放 | 久久精品国产久精国产一老狼 | av高清在线观看 | 天堂av资源网 | 粗暴蹂躏av一区二区 | 奇米四色在线视频 | 深夜福利日韩 | 国产精品伦视频 | 成年人在线播放视频 | 国产女主播自拍 | 福利视频二区 | 国内偷拍第一页 | 国产成人精品电影在线观看 | 国产一区精品在线观看 | 她也啪在线视频 | 羞羞涩涩视频 | 日本特级黄色大片 | 久久精品国产99国产精品导航 | 成人性生生活性生交全黄 | 天堂在线精品 | 亚洲一二三四五 | 丰满少妇弄高潮了www | 国产真实乱人偷精品人妻 | xxxxxxxx性开放视频 | 欧美sm视频| 国产精品久久久久久久久鸭 | 欧美xxxx18| 清纯小美女主播流白浆 | 少妇激情一区二区三区视频 | 2022精品国偷自产免费观看 | 性欧洲精品videos' | 色欧美视频 | 亚洲第一字幕 | 久久精品一区二区三区四区毛片 | 91在线看 | 国产精品久久久久国产a级 国产精品久久久久国产三级传媒 | 玩弄人妻少妇精品视频 | 精品国产免费一区二区三区香蕉 | 免费麻豆国产一区二区三区四区 | 嫩草视频免费观看 | 国产精品自在线拍国产 | 国产乱子经典视频在线观看 | 公妇乱淫真实生活 | 精品国产1区2区 | 亚洲美女色视频 | 日韩午夜在线 | 免费又黄又爽又色的视频 | 国产av亚洲精品ai换脸电影 | 国产乱色国产精品播放视频 | 亚洲色偷拍另类无码专区 | 免费网站av | 成人免费影视网站 | 欧美国产精品日韩在线 | 中文字幕58页| 国产网站精品 | 色爱综合另类图片av | 中文字幕熟妇人妻在线视频 | 欧美精品一区二区蜜臀亚洲 | 少妇高潮太爽了在线视频 | jlzzjizz亚洲学生好多水 | 久草在线视频首页 | 日韩精品自拍偷拍 | 久久综合给合久久狠狠狠97色 | 久久黄色网 | 国产欧美在线观看 | 无遮无挡爽爽免费视频 | 国产成人精品123区免费视频 | 国产精品亚洲а∨无码播放不卡 | 麻豆高清免费国产一区 | 无码熟妇人妻av | 日韩精品理论 | 国产一及片 | 国产香蕉在线视频 | 狠狠色综合网站久久久久久久高清 | 国产91在线播放精品91 | 日本少妇bbwbbw精品 | 91色在线视频 | jizz在亚洲| 欧美成人免费在线观看 | 欧美日韩在线免费观看 | 成人网ww555视频免费看 | 国产美女一区二区三区 | 老女人丨91丨九色 | 欧美成人播放 | 99热久久成人免费频精品2 | 国产一区二区精品在线 | 欧美成人播放 | 雨宫琴音av一区在线播放 | 午夜国产一区二区三区四区 | 日本黄大片在线观看 | 国产精品久久久久久久9999 | 色av性av丰满av | 特级毛片爽www免费版 | 欧美肥老太牲交大战 | 欧美成人猛片aaaaaaa | 黄色国产在线播放 | 色www.| 亚洲欲色| 免费av动漫 | 神马久久av | 高h全肉老汉嫩草文 | 色哟哟视频在线观看 | 国产午夜精品一区理论片飘花 | 午夜精品久久久久久99热 | www.91在线视频| 欧美黄色免费大片 | 久久免费网 | 又黄又爽又色qq群 | 国产乱子伦在线观看 | 1314全毛片 | 一级三级毛片 | 99精品在线观看 | 欧美日韩一区二区久久 | 国产96在线 | 亚洲 | 欧美a网站 | 无套内谢老熟女 | 大蜜桃臀偷拍系列在线观看 | 真人真事免费毛片 | 性欧美视频 | 天天综合网7799精品 | 国产免费av片在线观看 | 本道久久| 亚洲系列在线 | 深田咏美在线x99av | 亚洲一区综合 | 国产白丝无码免费视频 | 欧美日韩久久久久 | 九色视频在线播放 | 69久久夜色精品国产69蝌蚪网 | 国产99视频精品免视看芒果 | 在线免费观看成年人视频 | 天天干天天摸 | 美女一区二区三区网av | 亚洲精品少妇30p | 摸丰满大乳奶水www免费 | 国产一二精品 | 超级碰在线视频 | 天天干夜夜操视频 | 国产专区自拍 | 成人欧美在线观看 | 国产高潮好爽受不了了夜夜做 | 国产成人97精品免费看片 | 日韩在线一二三区 | 四虎网站在线播放 | 国产成人无码视频一区二区三区 | 午夜影院在线看 | 国产亲子乱弄免费视频 | 九九爱国产 | 亚洲视频精品在线 | 日韩噜噜 | 老司机在线精品视频网站的优点 | pics艳丽的少妇asian | 在线免费观看av的网站 | 亚洲男女一区二区三区 | 亚洲精品综合五月久久小说 | 色综合网址 | 大又大粗又爽又黄少妇毛片 | 欧美综合色区 | 嫩草影院一区二区 | 极品尤物一区二区三区 | 国产亚洲精品久久久网站好莱 | 奇米四色影视 | 草草浮力地址线路①屁屁影院 | 久久久久黑人强伦姧人妻 | 六月丁香婷婷网 | 视频一区 视频二区 视频三区 视频四区 国产 | 国产裸体无遮挡免费视频 | 国产精品奇米一区二区三区小说 | 国精产品一区一区三区有限公司杨 | 成人自拍视频在线观看 | a猛片 | 国产精品51麻豆cm传媒 | 国产91在线亚洲 | 中文字幕精品av乱喷 | 嫩草一区二区三区 | 最新亚洲人成无码网站 | 日韩精品一区二区三区免费视频 | 色婷婷综合久色aⅴ五区最新 | www成人免费视频 | 伦理欧美| 久草视频这里只有精品 | 经典三级久久 | 国内女人喷潮完整视频 | 久久久久久久久久久久久久久久久久 | 日韩婷婷| 精品国产品香蕉在线 | 亚洲爱情岛论坛永久 | 爱久久视频| av在线天堂 | 欧美破处大片 | 国产成人精品视频 | 熟妇高潮一区二区三区 | aⅴ一区二区三区无卡无码 aⅴ在线免费观看 | 亚洲国产成人精品久久久国产成人 | 日日碰狠狠添天天爽超碰97 | 欧美 日本 国产 | 午夜精品网站 | 爽爽窝窝午夜精品一区二区 | 国产精品久久人 | a级高清毛片 | 韩国一级黄色毛片 | 噼里啪啦免费观看高清动漫 | 情侣做性视频在线播放 | 丰满少妇猛烈进入三区视频 | 国产一区在线免费 | 国产亚洲精品久久yy50 | 欧美成人精品第一区二区三区 | 拍摄av现场失控高潮数次 | 国产在aj精品 | 男女免费视频网站 | 任你躁国产老女人 | 97超碰中文| 亚洲欧洲无码av电影在线观看 | 欧美综合成人 | 日本牲交大片免费观看 | 国产特黄毛片 | 欧美精品成人一区二区三区四区 | 黄色顶级片 | 韩国三级hd两男一女 | 日韩欧美xxx| 国产成人无码a区在线观看视频app | 伊人久久一区二区三区 | 日本黄色短片 | 日本最新免费二区 | 精品国产乱码久久久 | 一边吃奶一边做动态图 | 国产精品久久久久久久久久久久 | 国产欧美日韩在线在线播放 | 精品久久久久久中文字幕2017 | 欧美久久久久久久高潮 | 成人在线免费视频观看 | 国产无套水多在线观看 | 久久偷看各类wc女厕嘘嘘偷窃 | 强制中出し~大桥未久在线a | 少妇粗大进出白浆嘿嘿视频 | 久久久久久九九九九九 | 欧美黄色大片网站 | 国产69精品久久久久久人妻精品 | 亚洲午夜福利在线视频 | 国产主播第一页 | 97在线国产视频 | 超h高h肉h文教室学长男男视频 | 久久大综合 | 亚洲精品乱码久久久久66国产成 | 日韩欧美高清在线观看 | 日韩国产精品一区 | 国产特级黄色录像 | 专干老熟女视频在线观看 | 亚洲一在线 | 色哺乳xxxxhd国产 | 天天爽网站 | 亚洲成a∨人片在线观看无码 | 少妇裸交aa大片 | 任我爽精品视频在线观看 | 天堂网在线观看 | 国产成人午夜精品 | 日本成人一区二区 | 91嫩草在线播放 | 两个人日本www免费版 | 国产一道本 | 亚洲毛片av日韩av无码 | 久久99国产精品久久99 | 欧美精品日韩在线观看 | 亚洲欧美视频在线 | 国产精品乱码久久久久 | 极品新婚夜少妇真紧 | 中文字幕av亚洲精品一部二部 | 国产网址在线观看 | 国产精品无码无片在线观看 | 一级裸体黄色片 | 亚洲图片三区 | 亚洲日韩成人av无码网站 | 一区二区三区欧美在线 | 国产毛片农村妇女系列bd | 国产无遮挡aaa片爽爽 | 8888四色奇米在线观看 | 天天射日| 国产精品18久久久久白浆 | 四虎网址大全 | 国产馆在线视频 | 国产视频1区2区3区 国产视频69 | 国产精品igao为爱做激情 | 女人天堂久久爱av四季av | 亚洲国产极品 | 日韩中字幕 | 欧美a级大片| 日韩av手机在线免费观看 | 大战肉丝少妇在线观看 | 无码成人精品区在线观看 | 国产黄色在线免费看 | 免费在线观看亚洲 | 哺乳期喷奶水丰满少妇 | 午夜性色福利影院 | 国产大片一区二区三区 | 成人网入口| 黄色大片儿| 国内三级视频 | 天天摸日日摸狠狠添 | 久久婷婷五月综合色欧美 | 久久久久久久亚洲国产精品87 | 亚洲色图综合网 | 欧美 日韩 精品 | 亚洲激情小视频 | 成人av中文字幕 | 伊人久久五月丁香综合中文亚洲 | 在线人人车操人人看视频 | 中文字幕第四页 | 中文在线资源 | 成人小说亚洲一区二区三区 | 日本高清视频一区二区三区 | 国语对白老女人一级hd | 99精品视频99 | 国产蜜臀97一区二区三区 | 国产精品国产三级国产在线观看 | 91视频黄色 | 国产精品一区二区三区久久久 | 国产久色在线拍揄自揄拍 | 在线观看的av网址 | 国产午夜精品福利视频 | 91网页入口 | 男女肉粗暴进来动态图 | 成年人网站免费 | 色小说香蕉 | 国产精品视频在线播放 | 中文字幕无码av激情不卡 | 337p日本欧洲亚洲大胆裸体艺术 | 国产欧美精品一区二区色综合 | 欧美久久99| 国产三区四区视频 | 98国产精品午夜免费福利视频 | 久久久久久久国产免费看 | 黄色国产免费 | 自拍偷拍21p | 青青草网址 | 91精品国产91久久久久久最新 | 羞羞麻豆国产精品1区2区3区 | 成人激情开心 | 国产伦精品一区二区三区视频黑人 | 久久久看片| 免费黄色欧美视频 | 中国黄色网址 | 久久人人爽人人爽人人片av卡 | 伊人精品在线 | 亚洲二区在线视频 | 天天摸天天碰天天添 | 中文字幕成人av | 日日色综合 | av片在线免费 | 蜜臀av在线免费观看 | 中文字幕在线二区 | 成人亚洲精品久久久久软件 | 奇米影视久久 | 97久久精品人人澡人人爽缅北 | 男ji大巴进入女人的视频小说 | 日本黄区免费视频观看 | 免费观看a级毛片在线播放 免费观看a级片 | 无码中文av有码中文a | 成人乱人乱一区二区三区 | 丰满的少妇xxxxx人伦理 | 欧美成人午夜精品免费 | 成人夜视频 | 欧美日韩免费一区 | 全黄h全肉1v1各种姿势动漫 | 风韵少妇spa私密视频 | 欧美日韩在线网站 | www.日本黄 | 久久黄色视 | 麻豆国产在线视频 | 中文字幕免费观看 | 亚洲一区二区影视 | 无码av片av片av无码 | 男人天堂久久久 | 免费观看全黄做爰的视频 | 99久久久无码国产精品免费 | 生活片一级片 | 黑人巨大videos亚洲娇小 | 久久av一区二区三区亚洲 | 国产性猛交xxxx免费看久久 | 一级黄色大全 | 精品亚洲国产成av人片传媒 | 免费无码又爽又刺激高潮的视频 | 亚洲一区二区三区三州 | 国产高清视频在线观看97 | 免费又黄又爽又色的视频 | www国产| 在线看的av网站 | 中文字幕在线日亚州9 | 丁香六月综合激情 | 国产成人亚洲人欧洲 | 黄色一级免费片 | 日韩女女同性aa女同 | 东北老女人高潮大叫对白 |