欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

文件工具類

張軍 3240 0

文件的各種操作工具類

張軍博客

package zj.io.util;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.RandomAccessFile;
import java.io.Reader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import java.util.TreeMap;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;

import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;

import org.apache.commons.io.FileExistsException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
import org.apache.commons.io.output.StringBuilderWriter;
import org.apache.log4j.Logger;

import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import zj.check.util.CheckUtil;
import zj.common.KV;
import zj.common.VVV;
import zj.common.exception.ServiceException;
import zj.date.util.DateUtil;
import zj.io.model.ICopyFilesCallBack;
import zj.io.model.IJarCallBackRead;
import zj.io.model.IJarCallBackWrite;
import zj.io.model.JarCallBackRead;
import zj.io.model.JarClass;
import zj.io.model.JarParams;
import zj.io.service.FileFilterI;
import zj.io.service.IReadFilesCall;
import zj.io.service.ReadLinesBatchCallI;
import zj.io.service.ReadLinesCallI;

/**
 * 類名 :FileUtil<br>
 * 概況 :文件工具類<br>
 * OutputStreamWriter/Reader->charsetName 一般情況下是:先打開的后關閉,后打開的先關閉
 * 
 * @version 1.00 (2011.12.02)
 * @author SHNKCS 張軍 {@link <a target=_blank href=http://www.dlhighland.cn>張軍個人網站</a>&nbsp;&nbsp;&nbsp;&nbsp;<a target=_blank href=http://user.qzone.qq.com/360901061/>張軍QQ空間</a>}
 */
public class FileUtil implements Serializable {
	private static final long serialVersionUID = 1L;
	/** 寫文件換行標識 **/
	// System.getProperty("line.separator").equals(FileUtil.LINE_SEPARATOR)->true
	public static String LINE_SEPARATOR;// = System.getProperty("line.separator");
	/** 文件分割符:/,\\ **/
	public static final String SEPARATOR = File.separator;
	private transient static final Logger logger = Logger.getLogger(FileUtil.class);
	public static final int BUFSIZE = 8192;
	static {
		// avoid security issues
		StringBuilderWriter buf = new StringBuilderWriter(4);
		PrintWriter out = new PrintWriter(buf);
		out.println();
		LINE_SEPARATOR = buf.toString();
		out.close();
	}

	/**
	 * 追加文件內容
	 * 
	 * @param file
	 *            文件
	 * @param content
	 *            內容
	 */
	public final static void appendContentByFileWriter(File file, String content) {
		FileWriter fw = null;
		PrintWriter pw = null;
		try {
			fileMkdir(file);
			// 如果文件存在,則追加內容;如果文件不存在,則創建文件
			fw = new FileWriter(file, true);
			pw = new PrintWriter(fw);
			pw.println(content);
			pw.flush();
			fw.flush();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				pw.close();
				fw.close();
			} catch (Exception e) {
			}
		}
	}

	/**
	 * 追加文件內容
	 * 
	 * @param file
	 *            文件
	 * @param content
	 *            內容
	 */
	public final static void appendContentByBufferedWriter(File file, String content) {
		BufferedWriter out = null;
		try {
			out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
			out.write(content + FileUtil.LINE_SEPARATOR);
			out.flush();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				out.close();
			} catch (Exception e) {
			}
		}
	}

	/**
	 * 追加文件內容
	 * 
	 * @param file
	 *            文件
	 * @param content
	 *            內容
	 */
	public final static void appendContentByRandomAccessFile(File file, String content) {
		RandomAccessFile raf = null;
		try {
			// 打開一個隨機訪問文件流,按讀寫方式
			raf = new RandomAccessFile(file.getAbsolutePath(), "rw");
			// 文件長度,字節數
			long fileLength = raf.length();
			// 將寫文件指針移到文件尾。
			raf.seek(fileLength);
			// raf.skipBytes(skipLength);
			raf.write((content + FileUtil.LINE_SEPARATOR).getBytes());
			raf.close();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				raf.close();
			} catch (Exception e) {
			}
		}
	}

	/**
	 * 追加文件內容
	 * 
	 * @param file
	 *            文件
	 * @param content
	 *            內容
	 * @param before
	 *            在前面
	 */
	@Deprecated
	public final static void appendContentByRandomAccessFile(File file, String content, boolean before) {
		appendContentByRandomAccessFile(file, content, before ? 0 : Long.MAX_VALUE);
	}

	/**
	 * 追加文件內容
	 * 
	 * @param file
	 *            文件
	 * @param content
	 *            內容
	 * @param skipLength
	 *            在第幾行寫
	 */
	@Deprecated
	public final static void appendContentByRandomAccessFile(File file, String content, long skipLength) {
		RandomAccessFile raf = null;
		try {
			// 打開一個隨機訪問文件流,按讀寫方式
			raf = new RandomAccessFile(file.getAbsolutePath(), "rw");
			// 文件長度,字節數
			long fileLength = raf.length();
			if (skipLength < 0) {
				skipLength = 0;
			} else if (skipLength == Long.MAX_VALUE) {
				skipLength = fileLength;
			} else {
				if (skipLength > fileLength) {
					skipLength = fileLength;
				}
			}
			// 將寫文件指針移到文件尾。
			raf.seek(skipLength);
			// raf.skipBytes(skipLength);
			raf.write((content + FileUtil.LINE_SEPARATOR).getBytes());
			raf.close();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				raf.close();
			} catch (Exception e) {
			}
		}
	}

	/**
	 * 監聽文件夾變化
	 * 
	 * @param rootDir
	 *            文件夾路徑
	 * @param adaptor
	 *            監聽文件適配器
	 */
	public static void listenerFile(final String rootDir, final FileAlterationListenerAdaptor adaptor) {
		listenerFile(rootDir, adaptor, 1000);
	}

	/**
	 * 監聽文件夾變化
	 * 
	 * @param rootDir
	 *            文件夾路徑
	 * @param adaptor
	 *            監聽文件適配器
	 * @param interval
	 *            輪詢間隔 interval 秒
	 */
	public static void listenerFile(final String rootDir, final FileAlterationListenerAdaptor adaptor, final long interval) {
		new Thread(new Runnable() {
			@Override
			public void run() {
				try {
					// logger.info("監聽文件目錄【" + rootDir + "】");
					// 輪詢間隔 1 秒
					// long interval = TimeUnit.SECONDS.toMillis(1);
					// 創建一個文件觀察器用于處理文件的格式
					FileAlterationObserver observer = new FileAlterationObserver(rootDir);
					// 設置文件變化監聽器
					observer.addListener(adaptor);
					// 創建文件變化監聽器
					FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer);
					// 開始監控
					monitor.start();
					logger.info("監聽文件目錄【" + rootDir + "】開始啟動");
				} catch (Exception e) {
					logger.error("監聽出錯", e);
				}
			}
		}).start();
	}

	/**
	 * 拷貝文件
	 * 
	 * @param callBack
	 *            拷貝回調
	 * 
	 */
	public static void copyFiles(ICopyFilesCallBack callBack) {
		String input = callBack.getInputFile();
		String output = callBack.getOutputFile();
		try {
			// 拷貝文件路徑[輸入文件目錄->拷貝文件路徑]
			Collection<String> queryClass = callBack.getCopyFile();
			File inputFile = new File(input);
			if (!inputFile.exists()) {
				throw new ServiceException("輸入文件目錄不存在");
			}
			File outputFile = new File(output);
			if (!outputFile.exists()) {
				outputFile.mkdirs();
			}
			// 查詢所有源文件
			List<File> files = new ArrayList<File>();
			FileUtil.setFilterFiles(files, input);
			// classes路徑前綴
			String srcPrefix = "";
			input = FileUtil.linuxSeparator(input);
			if (!input.endsWith("/")) {
				input += "/";
			}
			// 源文件路徑前綴
			srcPrefix = input;
			// System.out.println("文件個數[" + files.size() + "]");
			for (File inFile : files) {
				String lf = FileUtil.linuxSeparator(inFile.getAbsolutePath());
				// 過慮后綴
				// String includeExt = ".class";
				// if (CheckUtil.isNotNull(includeExt) && !lf.endsWith(includeExt)) {
				// continue;
				// }
				// 取得類全路徑com/xxx/xxx/xxx.class
				String clsPath = lf.substring(srcPrefix.length());
				// System.out.println(lf + "###" + clsPath);
				if (queryClass.contains(clsPath)) {
					// 拷貝源class
					File outFile = new File(output, clsPath);
					// 判斷目標文件目錄是否存在
					File dstFileDir = outFile.getParentFile();
					if (!dstFileDir.exists()) {
						dstFileDir.mkdirs();
					}
					FileUtil.copyFile(inFile, outFile);
					// 回調
					callBack.copyFile(inFile, outFile);
					// System.out.println("源文件【" + inFile.getAbsolutePath() + "】拷貝到->【" + outFile.getAbsolutePath() + "】");
				}
			}
			// System.out.println("文件個數[" + files.size() + "]");
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 獲取進程命令執行打印出來的信息
	 * 
	 * @param command
	 *            命令
	 * @return
	 */
	public static List<String> cmdProcessInfo(String command) {
		return cmdProcessInfo(command, "GBK");
	}

	/**
	 * 獲取進程命令執行打印出來的信息
	 * 
	 * @param command
	 *            命令
	 * @param charsetName
	 *            編碼
	 * @return
	 */
	public static List<String> cmdProcessInfo(String command, String charsetName) {
		List<String> lists = new ArrayList<String>();
		BufferedReader in = null;
		Process pro = null;
		try {
			Runtime r = Runtime.getRuntime();
			pro = r.exec(command);
			in = new BufferedReader(new InputStreamReader(pro.getInputStream(), charsetName));
			String line = in.readLine();
			line = IOUtils.readFirstLine(line);
			while (line != null) {
				lists.add(line);
				line = in.readLine();
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			if (in != null) {
				try {
					in.close();
				} catch (IOException e) {
				}
			}
			if (pro != null) {
				pro.destroy();
			}
		}
		return lists;
	}

	/**
	 * 創建文件目錄
	 * 
	 * @param file
	 *            文件/目錄
	 */
	public static void fileMkdir(File... files) {
		if (files == null)
			return;
		for (File file : files) {
			String outputDir = "";
			if (file.isDirectory()) {
				outputDir = file.getAbsolutePath();
			} else {
				outputDir = file.getParent();
			}
			File outputDirFile = new File(outputDir);
			if (!outputDirFile.exists()) {
				outputDirFile.mkdirs();
			}
		}
	}

	/**
	 * 拷貝文件
	 * 
	 * @param inputFile
	 *            輸入文件
	 * @param outputFile
	 *            輸出文件
	 */
	public static void copyFile(File inputFile, File outputFile) {
		try {
			fileMkdir(outputFile);
			FileInputStream inputFIS = new FileInputStream(inputFile);
			FileOutputStream outputFOS = new FileOutputStream(outputFile);
			IOUtils.copyLarge(inputFIS, outputFOS);
			IOUtils.closeQuietly(inputFIS);
			IOUtils.closeQuietly(outputFOS);
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 讀取jar包里面指定文件的內容
	 * 
	 * @param jarFilePath
	 *            jar包文件路徑
	 * @param fileName
	 *            文件路徑名
	 * @throws IOException
	 */
	public static InputStream jarReadInputStream(String jarFilePath, String fileName) {
		JarFile jarFile = null;
		try {
			jarFile = new JarFile(jarFilePath);
			JarEntry entry = jarFile.getJarEntry(fileName);
			InputStream is = jarFile.getInputStream(entry);
			return FileUtil.copyInputStream(is);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				jarFile.close();
			} catch (IOException e) {
			}
		}
	}

	/**
	 * 讀取回調jar文件
	 * 
	 * @param jarFile
	 *            jar包路徑
	 * @param entryName
	 *            要寫的文件名
	 * @param data
	 *            文件內容
	 * @throws Exception
	 */
	public static void jarRead(IJarCallBackRead call) {
		String jarFilePath = call.getFilePath();
		if (CheckUtil.isNull(jarFilePath)) {
			throw new ServiceException("文件路徑zj.io.model.ICallBackWriteJar.getFilePath()不能為空");
		}
		// jar文件操作
		JarFile jarFile = null;
		try {
			// 1、首先將原Jar包里的所有內容讀取到內存里,用TreeMap保存
			jarFile = new JarFile(jarFilePath);
			// 讀取jar包內容
			Enumeration<JarEntry> es = jarFile.entries();
			while (es.hasMoreElements()) {
				// 獲取Jar對象
				JarEntry je = es.nextElement();
				// 文件名稱
				String name = je.getName();
				// // 文件大小
				// long size = je.getSize();
				// // 壓縮后的大小
				// long compressedSize = je.getCompressedSize();
				// 讀取jar包字節
				byte[] b = null;
				try {
					b = FileUtil.readByteByStream(jarFile.getInputStream(je));
				} catch (Exception e) {
					b = null;
				}
				// 放入臨時集合中
				boolean isContinue = call.read(je, KV.with(name, b));
				if (!isContinue) {
					// 中斷
					break;
				}
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				jarFile.close();
			} catch (IOException e) {
			}
		}
	}

	/**
	 * 讀取jar文件內容到map中
	 * 
	 * @param filePath
	 *            jar包路徑
	 * @throws Exception
	 */
	public static Map<String, byte[]> jarReadToMap(final String filePath) {
		// 可以保持排列的順序,所以用TreeMap 而不用HashMap
		final Map<String, byte[]> tm = new TreeMap<String, byte[]>();
		jarRead(new JarCallBackRead() {
			@Override
			public String getFilePath() {
				return filePath;
			}

			@Override
			public boolean read(JarEntry je, KV<String, byte[]> kv) {
				tm.put(kv.getK(), kv.getV());
				return true;
			}
		});
		return tm;
	}

	/**
	 * 修改Jar包里的文件或者添加文件
	 * 
	 * @param call
	 *            {@code jarFile jar包路徑,entryName 要寫的文件名,data 文件內容}
	 * @throws Exception
	 */
	public static void jarWrite(IJarCallBackWrite call) {
		String filePath = call.getFilePath();
		// 可以保持排列的順序,所以用TreeMap 而不用HashMap
		Map<String, byte[]> tm = jarReadToMap(filePath);
		String newFilePath = call.getNewFilePath();
		if (CheckUtil.isNull(newFilePath)) {
			newFilePath = filePath;
		}
		String entryName = call.getEntryName();
		byte[] data = call.getEntryData();
		boolean override = call.getEntryOverride();
		// jar文件操作
		JarFile jarFile = null;
		JarOutputStream jos = null;
		FileOutputStream fos = null;
		try {
			// 1、首先將原Jar包里的所有內容讀取到內存里,用TreeMap保存
			jarFile = new JarFile(filePath);
			// 寫出jar文件
			fos = new FileOutputStream(newFilePath);
			// 創建jar輸出流
			jos = new JarOutputStream(fos);
			Iterator<Map.Entry<String, byte[]>> it = tm.entrySet().iterator();
			// 判斷是否添加新的文件
			boolean isExistFile = false;
			// 2、將TreeMap重新寫到原jar里,如果TreeMap里已經有entryName文件那么覆蓋,否則在最后添加
			while (it.hasNext()) {
				Map.Entry<String, byte[]> item = it.next();
				// 當前文件名
				String name = item.getKey();
				// 當前文件字節碼
				byte[] tempData = item.getValue();
				if (name.equals(entryName)) {
					// 如果數據存在,不能執行下面添加操作,覆蓋,名稱相同
					isExistFile = true;
					if (data != null && override) {
						// 覆蓋文件
						tempData = data;
					}
				}
				// 回調操作
				VVV<Boolean, String, byte[]> result = call.updateData(KV.with(name, tempData));
				if (result != null) {
					if (!result.getV1()) {
						// 刪除此文件
						continue;
					}
					// 重新賦值名稱和數據
					name = result.getV2();
					tempData = result.getV3();
				}
				// 實例化jar里的對象
				JarEntry entry = new JarEntry(name);
				// 放入jar文件中
				jos.putNextEntry(entry);
				// 寫入字節
				jos.write(tempData, 0, tempData.length);
			}
			if (CheckUtil.isNotNull(entryName) && !isExistFile) {
				// 如果不存在文件則添加
				// 最后添加
				JarEntry newEntry = new JarEntry(entryName);
				jos.putNextEntry(newEntry);
				jos.write(data, 0, data.length);
			}
			jos.finish();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			try {
				fos.close();
			} catch (IOException e) {
			}
			try {
				jos.close();
			} catch (IOException e) {
			}
			try {
				jarFile.close();
			} catch (IOException e) {
			}
		}
	}

	/**
	 * 深度拷貝流
	 * 
	 * @param is
	 *            深度拷貝流
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @throws IOException
	 */
	public static InputStream copyInputStream(InputStream is) {
		try {
			// 創建一個新的流
			return new ByteArrayInputStream(readByteByStream(is));
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 按行輸出流內容
	 * 
	 * @param is
	 *            流,此is不關閉
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @throws IOException
	 */
	public static void printInputStream(InputStream is) {
		printInputStream(is, "GBK");
	}

	/**
	 * 按行輸出流內容
	 * 
	 * @param is
	 *            流,此is不關閉
	 * @param charsetName
	 *            字符集
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @throws IOException
	 */
	public static void printInputStream(InputStream is, String charsetName) {
		BufferedReader reader = null;
		InputStreamReader isr = null;
		try {
			isr = new InputStreamReader(is, charsetName);
			reader = new BufferedReader(isr);
			String line = null;
			while ((line = reader.readLine()) != null) {
				System.out.println(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			IOUtils.closeQuietly(reader);
		}

	}

	/**
	 * 讀取流
	 * 
	 * @param file
	 *            文件
	 * @return 字節數組
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return 字節流
	 * @throws Exception
	 */
	public static byte[] readByteByFile(File file) {
		try {
			return readByteByStream(new FileInputStream(file));
		} catch (IOException e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 讀取流
	 * 
	 * @param is
	 *            輸入流
	 * @return 字節數組
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return 字節流
	 * @throws Exception
	 */
	public static byte[] readByteByStream(InputStream is) {
		ByteArrayOutputStream baos = null;
		try {
			baos = new ByteArrayOutputStream();
			byte[] buff = new byte[BUFSIZE];
			int len = -1;
			while ((len = is.read(buff)) != -1) {
				baos.write(buff, 0, len);
			}
			byte[] b = baos.toByteArray();
			return b;
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(baos);
			IOUtils.closeQuietly(is);
		}
	}

	/**
	 * 設置文件目錄/文件的修改時間
	 * 
	 * @param file
	 *            文件
	 * @param lmdate
	 *            修改的日期
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return
	 */
	public static void setLastModified(File file, String lmdate) {
		if (file == null || !file.exists()) {
			logger.warn("文件不存在,無法設置修改時間");
			return;
		}
		Date ld = DateUtil.parseDate(lmdate);
		if (ld == null) {
			logger.warn("日期格式不正確");
			return;
		}
		long lastDate = ld.getTime();
		if (file.isDirectory()) {
			// 讀取文件目錄
			List<File> files = new ArrayList<File>();
			FileUtil.setFilterFiles(files, file.getAbsolutePath());
			for (File $file : files) {
				$file.setLastModified(lastDate);
			}
		} else {
			file.setLastModified(lastDate);
		}
	}

	/**
	 * 移動文件
	 * 
	 * @param srcFile
	 *            源文件
	 * @param destFile
	 *            目標文件(文件或目錄)
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return
	 */
	public static void moveFile(File srcFile, File destFile) throws Exception {
		moveFile(srcFile, destFile, false);
	}

	/**
	 * 移動文件
	 * 
	 * @param srcFile
	 *            源文件
	 * @param destFile
	 *            目標文件(文件或目錄)
	 * @param overrideFile
	 *            是否覆蓋
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return
	 */
	public static void moveFile(File srcFile, File destFile, boolean overrideFile) throws Exception {
		// File srcFile = new File("D:/msth/ipo/excel/入圍/復核/復核-20161103.xlsx");
		// File destFile = new File("D:/msth/ipo/excel/入圍/復核/backup");
		// boolean overrideFile = false;
		try {
			if (overrideFile) {
				// 拷貝文件
				if (destFile.isDirectory()) {
					try {
						FileUtils.copyFileToDirectory(srcFile, destFile);
					} catch (Exception e1) {
						// 不做處理
					}
				} else {
					try {
						FileUtils.copyFile(srcFile, destFile);
					} catch (Exception e1) {
						// 不做處理
					}
				}
				// 刪除源文件
				srcFile.delete();
			} else {
				if (destFile.isDirectory()) {
					FileUtils.moveFileToDirectory(srcFile, destFile, true);
				} else {
					FileUtils.moveFile(srcFile, destFile);
				}
			}
		} catch (Exception e) {
			if (e instanceof FileExistsException) {
				// 文件存在
				if (destFile.isDirectory()) {
					String destPath = srcFile.getAbsolutePath();
					File renameDestFile = new File(destFile, FilenameUtils.getBaseName(destPath) + "-" + DateUtil.dateParse(new Date(), "yyyyMMddHHmmssSSS") + "." + FilenameUtils.getExtension(destPath));
					FileUtils.moveFile(srcFile, renameDestFile);
				} else {
					String destPath = destFile.getAbsolutePath();
					File renameDestFile = new File(FilenameUtils.getBaseName(destPath) + "-" + DateUtil.dateParse(new Date(), "yyyyMMddHHmmssSSS") + "." + FilenameUtils.getExtension(destPath));
					FileUtils.moveFile(srcFile, renameDestFile);
				}
			} else {
				e.printStackTrace();
				throw e;
			}
		}
	}

	/**
	 * 取得文件的創建時間
	 * 
	 * @param file
	 * @return
	 */
	public static final String getCreateTime(File file) {
		String createTime = "";
		try {
			Process p = Runtime.getRuntime().exec("cmd /C dir " + file.getAbsolutePath() + " /tc");
			InputStream is = p.getInputStream();
			// ant下的zip工具默認壓縮編碼為UTF-8編碼, 而winRAR軟件壓縮是用的windows默認的GBK或者GB2312編碼 所以解壓縮時要制定編碼格式
			BufferedReader br = new BufferedReader(new InputStreamReader(is, "gbk"));
			String line = null;
			int i = 0;
			while ((line = br.readLine()) != null) {
				if (++i == 6) {
					createTime = line.substring(0, 17);
				}
			}
		} catch (Exception e) {
			createTime = "";
			logger.error(e.getMessage());
		}
		return createTime;
	}

	/**
	 * 根據系統改變路徑分割符號
	 * 
	 * @param path
	 *            路徑
	 * @param isSpeEnd
	 *            是否添加最后分割符
	 *            <p>
	 *            true:添加
	 *            </p>
	 *            <p>
	 *            false:默認
	 *            </p>
	 * @see #changePathSeparator(String, zj.io.util.ConstantForEnum.ChangePathLastSeparator)
	 * @return 改變后的系統路徑
	 */
	@Deprecated
	public static final String changePathSeparator(String path, boolean isSpeEnd) {
		if (CheckUtil.isNull(path))
			return "";
		// logger.debug("改變路徑分割符號前path:" + path);
		if (SEPARATOR.equals("/")) {
			// 非windows系統
			path = path.replaceAll("\\\\", "/");
			if (isSpeEnd) {
				if (!path.endsWith("/")) {
					path = path + "/";
				}
			}
		} else {
			// windows系統
			path = path.replaceAll("/", "\\\\");
			if (isSpeEnd) {
				if (!path.endsWith("\\")) {
					path = path + "\\";
				}
			}
		}
		return path;
	}

	/**
	 * 根據系統改變路徑分割符號
	 * 
	 * @param path
	 *            路徑
	 * @param sepEnum
	 *            常量枚舉{@link zj.io.util.ConstantForEnum.ChangePathLastSeparator}
	 * @return 改變后的系統路徑
	 */
	public static final String changePathSeparator(String path, ConstantForEnum.ChangePathLastSeparator sepEnum) {
		if (CheckUtil.isNull(path))
			return "";
		// logger.debug("改變路徑分割符號前path:" + path);
		if (SEPARATOR.equals("/")) {
			path = linuxSeparator(path, sepEnum);
		} else {
			path = windowsSeparator(path, sepEnum);
		}
		return path;
	}

	/**
	 * 根據系統改變包路徑分割符號
	 * 
	 * @param packagePath
	 *            包路徑
	 * @return 包路徑
	 */
	public static final String packageToPath(String packagePath) {
		if (CheckUtil.isNull(packagePath))
			return "";
		// logger.debug("改變路徑分割符號前path:" + path);
		if (SEPARATOR.equals("/")) {
			packagePath = packagePath.replaceAll("\\.", "/");
		} else {
			packagePath = packagePath.replaceAll("\\.", "\\\\");
		}
		return packagePath;
	}

	/**
	 * window分割符
	 * 
	 * @param path
	 *            路徑
	 * @return 改變后的系統路徑
	 */
	public static final String windowsSeparator(String path) {
		return windowsSeparator(path, ConstantForEnum.ChangePathLastSeparator.NONE);
	}

	/**
	 * window分割符
	 * 
	 * @param path
	 *            路徑
	 * @param sepEnum
	 *            常量枚舉{@link zj.io.util.ConstantForEnum.ChangePathLastSeparator}
	 * @return 改變后的系統路徑
	 */
	public static final String windowsSeparator(String path, ConstantForEnum.ChangePathLastSeparator sepEnum) {
		if (CheckUtil.isNull(path))
			return "";
		// windows系統
		path = path.replaceAll("/", "\\\\");
		if (ConstantForEnum.ChangePathLastSeparator.ADD_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.ADD_BEFORE == sepEnum) {
			if (!path.startsWith("\\")) {
				path = "\\" + path;
			}
		}
		if (ConstantForEnum.ChangePathLastSeparator.ADD_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.ADD_AFTER == sepEnum) {
			if (!path.endsWith("\\")) {
				path = path + "\\";
			}
		}
		if (ConstantForEnum.ChangePathLastSeparator.DEL_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.DEL_BEFORE == sepEnum) {
			if (path.startsWith("\\")) {
				path = path.substring(1);
			}
		}
		if (ConstantForEnum.ChangePathLastSeparator.DEL_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.DEL_AFTER == sepEnum) {
			if (path.endsWith("\\")) {
				path = path.substring(0, path.length() - 1);
			}
		}
		return path;
	}

	/**
	 * linux分割符
	 * 
	 * @param path
	 *            路徑
	 * @return 改變后的系統路徑
	 */
	public static final String linuxSeparator(String path) {
		return linuxSeparator(path, ConstantForEnum.ChangePathLastSeparator.NONE);
	}

	/**
	 * linux分割符
	 * 
	 * @param path
	 *            路徑
	 * @param sepEnum
	 *            常量枚舉{@link zj.io.util.ConstantForEnum.ChangePathLastSeparator}
	 * @return 改變后的系統路徑
	 */
	public static final String linuxSeparator(String path, ConstantForEnum.ChangePathLastSeparator sepEnum) {
		if (CheckUtil.isNull(path))
			return "";
		// 非windows系統
		path = path.replaceAll("\\\\", "/");
		// switch (sepEnum) {
		// case ADD_ALL:
		// case ADD_BEFORE:
		// break;
		// case ADD_AFTER:
		// break;
		// default:
		// break;
		// }
		if (ConstantForEnum.ChangePathLastSeparator.ADD_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.ADD_BEFORE == sepEnum) {
			if (!path.startsWith("/")) {
				path = "/" + path;
			}
		}
		if (ConstantForEnum.ChangePathLastSeparator.ADD_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.ADD_AFTER == sepEnum) {
			if (!path.endsWith("/")) {
				path = path + "/";
			}
		}
		if (ConstantForEnum.ChangePathLastSeparator.DEL_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.DEL_BEFORE == sepEnum) {
			if (path.startsWith("/")) {
				path = path.substring(1);
			}
		}
		if (ConstantForEnum.ChangePathLastSeparator.DEL_ALL == sepEnum || ConstantForEnum.ChangePathLastSeparator.DEL_AFTER == sepEnum) {
			if (path.endsWith("/")) {
				path = path.substring(0, path.length() - 1);
			}
		}
		return path;
	}

	/**
	 * 根據系統改變路徑分割符號
	 * 
	 * @param path
	 * @return
	 */
	public static final String changePathSeparator(String path) {
		return changePathSeparator(path, ConstantForEnum.ChangePathLastSeparator.NONE);
	}

	/**
	 * 獲得文件擴展名及前面的字符串
	 * 
	 * @param filePath
	 *            E:\\xmls\\iqc_basic_user.xml [E:\xmls\,iqc_basic_user,.xml,false]
	 * @return
	 */
	public static final String[] getFileNameExtension(String filePath) {
		String[] rtnStrs = new String[4];
		rtnStrs[0] = "";
		rtnStrs[1] = "";
		rtnStrs[2] = "";
		rtnStrs[3] = "";
		String dirPath = "";
		String fileName = "";
		String fileExtension = "";
		String tempStr = "";
		int index = -1;
		filePath = changePathSeparator(filePath);
		if (CheckUtil.isNotNull(filePath)) {
			index = filePath.lastIndexOf(SEPARATOR);
			if (index >= 0) {
				dirPath = filePath.substring(0, index + 1);
				tempStr = filePath.substring(index + 1);
				index = tempStr.lastIndexOf(".");
				if (index >= 0) {
					fileName = tempStr.substring(0, index);
					fileExtension = tempStr.substring(index);
				}
			} else {
				index = filePath.lastIndexOf(".");
				if (index >= 0) {
					fileName = filePath.substring(0, index);
					dirPath = fileName;
					fileExtension = filePath.substring(index);
				} else {
					dirPath = filePath;
					fileName = filePath;
				}
			}
		}
		rtnStrs[0] = dirPath;
		rtnStrs[1] = fileName;
		rtnStrs[2] = fileExtension;
		String diskPath = "";
		try {
			diskPath = dirPath.substring(dirPath.indexOf("\\") + 1);
		} catch (Exception e) {
			diskPath = "";
		}
		if ("".equals(diskPath)) {
			rtnStrs[3] = "true";
		} else {
			rtnStrs[3] = "false";
		}
		return rtnStrs;
	}

	/**
	 * 獲取圖片流
	 * 
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static final ImageReader getImageReader(File file) {
		try {
			ImageReader reader = null;
			String fileExtension = FilenameUtils.getExtension(file.getName());
			Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(fileExtension);
			reader = readers.next();
			ImageInputStream iis = ImageIO.createImageInputStream(file);
			reader.setInput(iis, true);
			return reader;
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 創建文件或目錄
	 * 
	 * @param file
	 *            文件對象
	 * @param isFolder
	 *            是否是目錄
	 * @return 創建是否成功
	 * @throws IOException
	 */
	public static final boolean createFolderOrFile(File file, boolean isFolder) {
		if (file == null)
			return false;
		if (isFolder) {
			if (file.exists()) {
				if (file.isFile()) {
					logger.warn("創建文件夾失敗:將要創建的文件【" + file.getAbsolutePath() + "】重名");
				} else if (file.isDirectory()) {
					logger.warn("創建文件夾失敗:將要創建的文件夾【" + file.getAbsolutePath() + "】已經存在");
				}
				return false;
			} else {
				file.mkdirs();
				logger.debug("創建文件夾【" + file.getAbsolutePath() + "】成功!");
				return true;
			}
		} else {
			String path = file.getPath();
			String[] tempPaths = getFileNameExtension(path);
			File fileDir = new File(tempPaths[0]);
			if (fileDir.exists()) {
				logger.warn("創建文件夾失敗:將要創建的文件夾【" + fileDir.getAbsolutePath() + "】已經存在");
				return false;
			} else {
				fileDir.mkdirs();
				logger.debug("創建文件夾【" + fileDir.getAbsolutePath() + "】成功!");
				return true;
			}
		}
	}

	/**
	 * 創建文件或目錄
	 * 
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static final boolean createFolderOrFile(String file) {
		return createFolderOrFile(file, false);
	}

	/**
	 * 創建文件或目錄
	 * 
	 * @param file
	 * @param isFolder
	 * @return
	 * @throws IOException
	 */
	public static final boolean createFolderOrFile(String file, boolean isFolder) {
		if (CheckUtil.isNull(file)) {
			return false;
		}
		file = changePathSeparator(file);
		return createFolderOrFile(new File(file), isFolder);
	}

	/**
	 * 創建文件
	 * 
	 * @param file
	 * @throws IOException
	 */
	public static final void forceMkdirFolderOrFile(String file) {
		if (CheckUtil.isNull(file)) {
			return;
		}
		file = changePathSeparator(file);
		forceMkdirFolderOrFile(new File(file));
	}

	/**
	 * 創建文件或目錄
	 * 
	 * @param file
	 *            文件對象
	 * @throws IOException
	 */
	public static final void forceMkdirFolderOrFile(File file) {
		try {
			if (file == null)
				return;
			if (!file.exists()) {
				// 創建目錄
				if (file.isFile()) {
					String path = file.getPath();
					String[] tempPaths = getFileNameExtension(path);
					File fileDir = new File(tempPaths[0]);
					if (fileDir.exists()) {
						logger.warn("創建文件夾失敗:將要創建的文件夾【" + fileDir.getAbsolutePath() + "】已經存在");
					} else {
						fileDir.mkdirs();
						logger.debug("創建文件夾【" + fileDir.getAbsolutePath() + "】成功!");
					}
				} else {
					file.mkdirs();
					logger.debug("創建文件夾【" + file.getAbsolutePath() + "】成功!");
				}
			}
			if (file.isFile()) {
				file.createNewFile();
				logger.debug("創建文件【" + file.getAbsolutePath() + "】成功!");
			}
		} catch (Exception e) {
			logger.error(e);
		}
	}

	/**
	 * 創建目錄
	 * 
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static final boolean createFolderOrFile(File file) {
		return createFolderOrFile(file, false);
	}

	/**
	 * 將一個字符串轉化為輸入流
	 * 
	 * @param sInputString
	 * @return
	 */
	public static final InputStream getStringStream(String sInputString) {
		return getStringStream(sInputString, "utf-8");
	}

	/**
	 * 將一個字符串轉化為輸入流
	 * 
	 * @param sInputString
	 * @param charset
	 * @return
	 */
	public static final InputStream getStringStream(String sInputString, String charset) {
		if (sInputString != null && !sInputString.trim().equals("")) {
			try {
				ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(sInputString.getBytes(charset));
				return tInputStringStream;
			} catch (Exception ex) {
				ex.printStackTrace();
			}
		}
		return null;
	}

	/**
	 * 將一個輸入流轉化為字符串
	 * 
	 * @see #readString(File)
	 * @param file
	 *            文件對象
	 * @return
	 */
	@Deprecated
	public static final String getStreamString(File file) {
		try {
			return getStreamString(new BufferedInputStream(new FileInputStream(file)));
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 將一個輸入流轉化為字符串
	 * 
	 * @see #readString(InputStream, boolean)
	 * @param is
	 *            輸入流
	 * @return 文件內容
	 */
	public static final String getStreamString(InputStream is) {
		InputStreamReader isr = null;
		if (is != null) {
			StringBuffer sb = new StringBuffer();
			BufferedReader br = null;
			try {
				br = new BufferedReader((isr = new InputStreamReader(is)));
				String sLine = null;
				sLine = br.readLine();
				sLine = IOUtils.readFirstLine(sLine);
				if (sLine != null) {
					sb.append(sLine);
					while ((sLine = br.readLine()) != null) {
						sb.append(sLine);
					}
				}
				return sb.toString();
			} catch (Exception e) {
				throw new ServiceException(e);
			} finally {
				try {
					if (br != null)
						br.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
				try {
					if (isr != null)
						isr.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
				try {
					if (is != null)
						is.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}

		}
		return null;
	}

	/**
	 * 設置一個目錄的所有文件至集合中
	 * 
	 * @param fileList
	 *            過慮后的文件集合
	 * @param dir
	 *            目錄
	 * @param filter
	 *            自定義文件過慮器
	 * @param defaultFilter
	 *            默認過慮器
	 */
	public static final void setFilterFilesLevel(List<File> fileList, String dir, FileFilterI filter, FileFilter defaultFilter, int level) {
		File file = new File(dir);
		if (!file.exists()) {
			logger.warn("文件:" + file.getAbsolutePath() + "不存在");
			return;
		}
		if (filter == null) {
			// 自定義filter為空
			if (file.isDirectory()) {
				File[] files = null;
				if (defaultFilter == null) {
					files = file.listFiles();
				} else {
					files = file.listFiles(defaultFilter);
				}
				if (files == null) {
					logger.debug("文件:" + file.getAbsolutePath() + "不存在");
				} else {
					for (File info : files) {
						if (info.isDirectory()) {
							fileList.add(info);
							setFilterFilesLevel(fileList, info.getPath(), filter, defaultFilter, 0);
						} else {
							// 如果是文件
							fileList.add(info);
						}
					}
				}
			} else {
				fileList.add(file);
			}
		} else {
			int tempLevel = level + 1;
			if (file.isDirectory()) {
				// 如果是目錄
				if (filter.interrupt(file, fileList)) {
					logger.debug("待判斷文件夾:" + file.getAbsolutePath() + "退出");
					return;
				}
				File[] files = null;
				if (defaultFilter == null) {
					files = file.listFiles();
				} else {
					files = file.listFiles(defaultFilter);
				}
				if (files == null) {
					logger.debug("文件:" + file.getAbsolutePath() + "不存在");
				} else {
					for (File info : files) {
						if (level == 0) {
							// 如果當前是開始目錄,則設置為1
							tempLevel = 1;
						}
						filter.setLevel(tempLevel);
						if (filter.accept(info)) {
							// 是否接收文件夾或文件
							if (info.isDirectory()) {
								if (filter.acceptDir(info)) {
									// 是否接收文件夾
									if (filter.interrupt(info, fileList)) {
										logger.debug("循環中待添加文件夾:" + info.getAbsolutePath() + "中斷");
										break;
									}
									fileList.add(info);
								}
								if (filter.interrupt(info, fileList)) {
									logger.debug("待回調文件夾:" + info.getAbsolutePath() + "中斷");
									break;
								}
								setFilterFilesLevel(fileList, info.getPath(), filter, defaultFilter, tempLevel);
							} else {
								// 如果是文件
								if (filter.acceptFile(info)) {
									// 是否接受文件
									if (filter.interrupt(info, fileList)) {
										logger.debug("循環中待添加文件:" + info.getAbsolutePath() + "中斷");
										break;
									}
									fileList.add(info);
								}
							}
						}
					}
				}
			} else {
				// 設置當前文件級別
				filter.setLevel(tempLevel);
				if (filter.accept(file)) {
					if (filter.interrupt(file, fileList)) {
						logger.debug("待判斷文件:" + file.getAbsolutePath() + "退出");
						return;
					}
					if (filter.acceptFile(file)) {
						if (filter.interrupt(file, fileList)) {
							logger.debug("待添加文件:" + file.getAbsolutePath() + "中斷");
							return;
						}
						fileList.add(file);
					}
				}
			}
		}
	}

	/**
	 * 讀取某個文件夾下的所有文件
	 * 
	 * @param inpath
	 *            輸入目錄
	 * @param call
	 *            讀取文件回調接口
	 */
	public static void readFiles(File file, IReadFilesCall call) {
		try {
			if (call == null) {
				// 如果無實現,則退出
				return;
			}
			if (call.isInterrupt()) {
				return;
			}
			if (file.isDirectory()) {
				// 文件列表信息
				File[] filelist = file.listFiles();
				// 循環文件列表
				for (File thisFile : filelist) {
					if (thisFile.isDirectory()) {
						// 如果是目錄
						// 每個文件回調
						call.callback(file);
						// 目錄回調
						call.directory(thisFile);
						// 遞歸調用
						readFiles(thisFile, call);
					} else {
						// 如果是文件
						// 每個文件回調
						call.callback(thisFile);
						// 文件回調
						call.file(thisFile);
					}
				}
			} else {
				// 每個文件回調
				call.callback(file);
				// 文件回調
				call.file(file);
			}
		} catch (Exception e) {
			logger.error(e);
		}
	}

	/**
	 * 設置一個目錄的所有文件至集合中
	 * 
	 * @param fileList
	 *            過慮后的文件集合
	 * @param dir
	 *            目錄
	 * @param filter
	 *            自定義文件過慮器
	 * @param defaultFilter
	 *            默認過慮器
	 */
	public static final void setFilterFiles(List<File> fileList, String dir, FileFilterI filter, FileFilter defaultFilter) {
		setFilterFilesLevel(fileList, dir, filter, defaultFilter, 0);
	}

	/**
	 * 設置一個目錄的所有文件至集合中
	 * 
	 * @param fileList
	 *            過慮后的文件集合
	 * @param dir
	 *            目錄
	 * @param defaultFilter
	 *            默認過慮器
	 */
	public static final void setFilterFiles(List<File> fileList, String dir, FileFilter defaultFilter) {
		setFilterFiles(fileList, dir, null, defaultFilter);
	}

	/**
	 * 設置一個目錄的所有文件至集合中
	 * 
	 * @param fileList
	 *            過慮后的文件集合
	 * @param dir
	 *            目錄
	 * @param filter
	 *            自定義文件過慮器
	 */
	public static final void setFilterFiles(List<File> fileList, String dir, FileFilterI filter) {
		setFilterFiles(fileList, dir, filter, null);
	}

	/**
	 * 設置一個目錄的所有文件至集合中
	 * 
	 * @param fileList
	 *            過慮后的文件集合
	 * @param dir
	 *            目錄
	 */
	public static final void setFilterFiles(List<File> fileList, String dir) {
		setFilterFiles(fileList, dir, null, null);
	}

	/**
	 * 設置屬性文件的值
	 * 
	 * @param path
	 * @param key
	 * @param value
	 * @throws Exception
	 */
	public static final void setProperty(String path, String key, String value) throws Exception {
		FileInputStream fis = new FileInputStream(path);
		BufferedInputStream bis = new BufferedInputStream(fis);
		// 配置文件內容解析
		Properties prop = new Properties();
		prop.load(bis);
		bis.close();
		fis.close();
		FileOutputStream fos = new FileOutputStream(path);
		BufferedOutputStream bos = new BufferedOutputStream(fos);
		// Properties prop = getProperties(path);
		prop.setProperty(key, value);
		prop.store(bos, null);
		bos.flush();
		fos.flush();
		bos.close();
		fos.close();
	}

	/**
	 * 獲取屬性值
	 * 
	 * @param path
	 * @param key
	 * @return
	 * @throws Exception
	 */
	public static final String getProperty(String path, String key) throws Exception {
		return getProperties(path).getProperty(key);
	}

	/**
	 * 獲取屬性對象
	 * 
	 * @param path
	 * @param key
	 * @return
	 * @throws Exception
	 */
	public static final Properties getProperties(String path) throws Exception {
		FileInputStream fis = new FileInputStream(path);
		BufferedInputStream bis = new BufferedInputStream(fis);
		// 配置文件內容解析
		Properties prop = new Properties();
		prop.load(bis);
		bis.close();
		fis.close();
		return prop;
	}

	/**
	 * 將對象序列化到磁盤文件中
	 * 
	 * @param t
	 *            對象
	 * @param filePath
	 *            文件路徑
	 * @throws Exception
	 */
	public static final <T> void writeObjectToFile(T t, String filePath) throws Exception {
		writeObjectToFile(t, new File(filePath));
	}

	/**
	 * 將對象序列化到磁盤文件中
	 * 
	 * @param t
	 * @param file
	 * @throws Exception
	 */
	public static final <T> void writeObjectToFile(T t, File file) throws Exception {
		FileOutputStream fos = null;
		BufferedOutputStream bos = null;
		ObjectOutputStream oos = null;
		try {
			String[] fileExts = getFileNameExtension(file.getAbsolutePath());
			String newFilePath = "";
			if (fileExts.length > 0) {
				newFilePath += fileExts[0];
			}
			File extFileDir = new File(newFilePath);
			if (!extFileDir.exists()) {
				extFileDir.mkdirs();
			}
			if (fileExts.length > 1) {
				newFilePath += fileExts[1];
			}
			if (fileExts.length > 2) {
				newFilePath += fileExts[2];
			}
			file = new File(newFilePath);
			if (file.exists()) {
				file.delete();
			}
			fos = new FileOutputStream(file);
			bos = new BufferedOutputStream(fos);
			oos = new ObjectOutputStream(bos);
			oos.writeObject(t);
			oos.flush();
		} finally {
			try {
				if (oos != null) {
					oos.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			try {
				if (bos != null) {
					bos.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			try {
				if (fos != null) {
					fos.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 反序列化,將字符串轉化為對象
	 * 
	 * @param serStr
	 * @return
	 * @throws Exception
	 */
	public static final <T> T readStrToObject(String serStr) throws Exception {
		return readStrToObject(serStr, "UTF-8");
	}

	/**
	 * 反序列化,將字符串轉化為對象
	 * 
	 * @param serStr
	 * @param charsetName
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public static final <T> T readStrToObject(String serStr, String charsetName) throws Exception {
		if (CheckUtil.isNull(serStr))
			return null;
		T obj = null;
		ObjectInputStream ois = null;
		ByteArrayInputStream bais = null;
		try {
			String redStr = "";
			redStr = java.net.URLDecoder.decode(serStr, charsetName);
			bais = new ByteArrayInputStream(redStr.getBytes("ISO-8859-1"));
			ois = new ObjectInputStream(bais);
			obj = (T) ois.readObject();
		} finally {
			try {
				if (ois != null) {
					ois.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			try {
				if (bais != null) {
					bais.close();
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		return obj;
	}

	// //序列化對象為String字符串,先對序列化后的結果進行BASE64編碼,否則不能直接進行反序列化
	// public static final String writeObject(Object o) throws Exception {
	// ByteArrayOutputStream bos = new ByteArrayOutputStream();
	// ObjectOutputStream oos = new ObjectOutputStream(bos);
	// oos.writeObject(o);
	// oos.flush();
	// oos.close();
	// bos.close();
	// //return new BASE64Encoder().encode(bos.toByteArray());
	// return new String(bos.toByteArray(), "ISO-8859-1");
	// }
	//
	// //反序列化String字符串為對象
	//
	// public static final Object readObject(String object) throws Exception{
	// //ByteArrayInputStream bis = new ByteArrayInputStream(new BASE64Decoder().decodeBuffer(object));
	// ByteArrayInputStream bis = new ByteArrayInputStream(object.getBytes("ISO-8859-1"));
	// ObjectInputStream ois = new ObjectInputStream(bis);
	// Object o = null;
	// try {
	// o = ois.readObject();
	// } catch(EOFException e) {
	// System.err.print("read finished");
	// }
	// bis.close();
	// ois.close();
	// return o;
	// }
	/**
	 * 將對象序列化成字符串
	 * 
	 * @param t
	 * @return
	 * @throws Exception
	 */
	public static final <T> String writeObjectToStr(T t) throws Exception {
		if (t == null)
			return null;
		ByteArrayOutputStream baos = null;
		ObjectOutputStream oos = null;
		String serStr = null;
		try {
			baos = new ByteArrayOutputStream();
			oos = new ObjectOutputStream(baos);
			oos.writeObject(t);
			oos.flush();
			baos.flush();
			serStr = baos.toString("ISO-8859-1");
			serStr = java.net.URLEncoder.encode(serStr, "UTF-8");
		} finally {
			oos.close();
			baos.close();
		}
		return serStr == null ? "" : serStr;
	}

	/**
	 * 反序列化,將磁盤文件轉化為對象
	 * 
	 * @param filePath
	 *            文件路徑
	 * @return
	 * @throws Exception
	 */
	public static final <T> T readFileToObject(String filePath) throws Exception {
		if (filePath == null || filePath.trim().equals(""))
			return null;
		File file = new File(filePath);
		return readFileToObject(file);

	}

	/**
	 * 反序列化,將磁盤文件轉化為對象
	 * 
	 * @param file
	 *            文件對象
	 * @return
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public static final <T> T readFileToObject(File file) throws Exception {
		FileInputStream fis = null;
		BufferedInputStream bis = null;
		ObjectInputStream ois = null;
		T obj = null;
		try {
			if (!file.exists())
				return null;
			fis = new FileInputStream(file);
			bis = new BufferedInputStream(fis);
			ois = new ObjectInputStream(bis);
			obj = (T) ois.readObject();
		} finally {
			ois.close();
			bis.close();
			fis.close();
		}
		return obj;

	}

	// readLinesCount
	// -----------------------------------------------------------------------
	public static final long readLinesCount(File file) {
		return readLinesCount(file, null);
	}

	public static final long readLinesCount(File file, String encoding) {
		InputStream in = null;
		try {
			in = FileUtils.openInputStream(file);
			return readLinesCount(in, encoding);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(in);
		}
	}

	public static final long readLinesCount(InputStream input, String encoding) {
		try {
			if (encoding == null) {
				return readLinesCount(input);
			} else {
				InputStreamReader reader = new InputStreamReader(input, encoding);
				return readLinesCount(reader);
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	public static final long readLinesCount(InputStream input) {
		InputStreamReader reader = new InputStreamReader(input);
		return readLinesCount(reader);
	}

	public static final long readLinesCount(Reader input) {
		try {
			long lineNum = 0;
			BufferedReader reader = new BufferedReader(input);
			String line = reader.readLine();
			line = IOUtils.readFirstLine(line);
			while (line != null) {
				lineNum++;
				line = reader.readLine();
			}
			return lineNum;
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	// readString
	/**
	 * 讀取文件內容
	 * 
	 * @param file
	 *            文件對象
	 * @param line
	 *            是否換行(true:換行,false:非換行),默認換行
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(File file) {
		return readString(file, true);
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param file
	 *            文件對象
	 * @param line
	 *            是否換行(true:換行,false:非換行)
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(File file, boolean line) {
		return readString(file, null, line);
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param file
	 *            文件對象
	 * @param encoding
	 *            編碼
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(File file, String encoding) {
		return readString(file, encoding, true);
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param file
	 *            文件對象
	 * @param encoding
	 *            編碼
	 * @param line
	 *            是否換行(true:換行,false:非換行)
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(File file, String encoding, boolean line) {
		InputStream in = null;
		try {
			in = FileUtils.openInputStream(file);
			return readString(in, encoding, line);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(in);
		}
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param input
	 *            輸入流
	 * @param encoding
	 *            編碼
	 * @param line
	 *            是否換行(true:換行,false:非換行)
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(InputStream input, String encoding, boolean line) {
		InputStreamReader reader = null;
		try {
			if (CheckUtil.isNull(encoding)) {
				encoding = "UTF-8";
			}
			// if (encoding == null) {
			// return readString(input, line);
			// } else {
			// reader = new InputStreamReader(input, encoding);
			// return readString(reader, line);
			// }
			reader = new InputStreamReader(input, encoding);
			return readString(reader, line);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(reader);
		}
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param input
	 *            輸入流
	 * @param line
	 *            是否換行(true:換行,false:非換行)
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(InputStream input, boolean line) {
		InputStreamReader reader = null;
		try {
			reader = new InputStreamReader(input);
			return readString(reader, line);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(reader);
		}
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param input
	 *            輸入流
	 * @param line
	 *            是否換行(true:換行,false:非換行)
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readString(Reader input, boolean line) {
		BufferedReader reader = null;
		try {
			StringBuffer sb = new StringBuffer();
			reader = new BufferedReader(input);
			String lineString = reader.readLine();
			lineString = IOUtils.readFirstLine(lineString);
			if (line) {
				while (lineString != null) {
					if (CheckUtil.isNotNull(sb.toString())) {
						sb.append(IOUtils.LINE_SEPARATOR);
					}
					sb.append(lineString);
					lineString = reader.readLine();
				}
			} else {
				while (lineString != null) {
					sb.append(lineString);
					lineString = reader.readLine();
				}
			}
			return sb.toString();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(reader);
		}
	}

	/**
	 * 
	 * @param file
	 *            文件對象
	 * @param maxLine
	 *            最大行
	 * @return
	 */
	public static final String readLine(File file, long maxLine) {
		return readLine(file, "UTF-8", true, maxLine);
	}

	/**
	 * 
	 * @param file
	 *            文件對象
	 * @param encoding
	 *            編碼
	 * @param maxLine
	 *            最大行
	 * @return
	 */
	public static final String readLine(File file, String encoding, long maxLine) {
		return readLine(file, encoding, true, maxLine);
	}

	/**
	 * 讀取文件內容
	 * 
	 * @param file
	 *            文件對象
	 * @param encoding
	 *            編碼
	 * @param line
	 *            是否換行(true:換行,false:非換行)
	 * @return 文件內容
	 * @throws IOException
	 */
	public static final String readLine(File file, String encoding, boolean line, long maxLine) {
		InputStream in = null;
		InputStreamReader isr = null;
		BufferedReader br = null;
		try {
			StringBuffer sb = new StringBuffer();
			in = FileUtils.openInputStream(file);
			isr = new InputStreamReader(in, encoding);
			br = new BufferedReader(isr);
			// 臨時行數
			long tmpLine = 0;
			String lineString = br.readLine();
			tmpLine++;
			lineString = IOUtils.readFirstLine(lineString);
			if (line) {
				while (lineString != null) {
					if (maxLine > 0 && tmpLine > maxLine) {
						break;
					}
					if (CheckUtil.isNotNull(sb.toString())) {
						sb.append(IOUtils.LINE_SEPARATOR);
					}
					sb.append(lineString);
					lineString = br.readLine();
					tmpLine++;
				}
			} else {
				while (lineString != null) {
					if (maxLine > 0 && tmpLine > maxLine) {
						break;
					}
					sb.append(lineString);
					lineString = br.readLine();
					tmpLine++;
				}
			}
			return sb.toString();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(in);
			IOUtils.closeQuietly(isr);
			IOUtils.closeQuietly(br);
		}
	}
	// readLines
	// -----------------------------------------------------------------------

	public static final <T extends Collection<String>> void readLines(T t, File file) {
		readLines(t, file, null);
	}

	public static final <T extends Collection<String>> void readLines(T t, File file, String encoding) {
		InputStream in = null;
		try {
			in = FileUtils.openInputStream(file);
			readLines(t, in, encoding);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(in);
		}
	}

	public static final <T extends Collection<String>> void readLines(T t, InputStream input, String encoding) {
		try {
			if (encoding == null) {
				readLines(t, input);
			} else {
				InputStreamReader reader = new InputStreamReader(input, encoding);
				readLines(t, reader);
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	public static final <T extends Collection<String>> void readLines(T t, InputStream input) {
		InputStreamReader reader = new InputStreamReader(input);
		readLines(t, reader);
	}

	public static final <T extends Collection<String>> void readLines(T t, Reader input) {
		try {
			Collection<String> coll = getColl(t);
			BufferedReader reader = new BufferedReader(input);
			String line = reader.readLine();
			line = IOUtils.readFirstLine(line);
			while (line != null) {
				coll.add(line);
				line = reader.readLine();
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	// readLinesCountI
	// -----------------------------------------------------------------------
	public static final <T extends Collection<String>> KV<Long, Long> readLinesCountI(File file, ReadLinesCallI<T> call) {
		return readLinesCountI(file, null, call);
	}

	public static final <T extends Collection<String>> KV<Long, Long> readLinesCountI(File file, String encoding, ReadLinesCallI<T> call) {
		InputStream in = null;
		try {
			in = FileUtils.openInputStream(file);
			return readLinesCountI(in, encoding, call);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(in);
		}
	}

	public static final <T extends Collection<String>> KV<Long, Long> readLinesCountI(InputStream input, String encoding, ReadLinesCallI<T> call) {
		try {
			if (encoding == null) {
				return readLinesCountI(input, call);
			} else {
				InputStreamReader reader = new InputStreamReader(input, encoding);
				return readLinesCountI(reader, call);
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	public static final <T extends Collection<String>> KV<Long, Long> readLinesCountI(InputStream input, ReadLinesCallI<T> call) {
		InputStreamReader reader = new InputStreamReader(input);
		return readLinesCountI(reader, call);
	}

	/**
	 * 讀取大文件
	 * 
	 * @param input
	 *            輸入流
	 * @param call
	 *            回調
	 * @return {@code KV<總行數,實際行數>}
	 * @throws IOException
	 */
	public static final <T extends Collection<String>> KV<Long, Long> readLinesCountI(Reader input, ReadLinesCallI<T> call) {
		long totalLineNum = 0;
		long lineNum = 0;
		try {
			BufferedReader reader = new BufferedReader(input);
			String line = reader.readLine();
			line = IOUtils.readFirstLine(line);
			long startLineNum = call.getStartLineNum();
			long endLineNum = call.getEndLineNum();
			String linePrev = null;
			String lineNext = null;
			boolean first = true;
			while (line != null) {
				totalLineNum++;
				if (first) {
					// 這里只讀取一次
					// 讀取下下一行
					lineNext = reader.readLine();
					first = false;
				}
				// 是否中斷
				if (call.interrupt(linePrev, line, lineNext, totalLineNum)) {
					break;
				}
				if (startLineNum <= totalLineNum && (endLineNum <= 0 || endLineNum >= totalLineNum)) {
					// 開始/結束行區間數據
					KV<String, Boolean> kv = call.changeLine(linePrev, line, lineNext, totalLineNum);
					if (kv != null) {
						line = kv.getK();
						boolean filter = kv.getV();
						// 是否過慮
						if (filter) {
							lineNum++;
						}
					}
				}
				// 賦值上一行
				linePrev = line;
				// 讀取下一行
				line = lineNext;
				if (line != null) {
					// 讀取下下一行
					lineNext = reader.readLine();
				}
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		}
		return KV.with(totalLineNum, lineNum);
	}

	// readLinesI
	// -----------------------------------------------------------------------
	public static final <T extends Collection<String>> T readLinesI(File file, ReadLinesCallI<T> call) {
		return readLinesI(file, null, call);
	}

	public static final <T extends Collection<String>> T readLinesI(File file, String encoding, ReadLinesCallI<T> call) {
		InputStream in = null;
		try {
			in = FileUtils.openInputStream(file);
			return readLinesI(in, encoding, call);
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			IOUtils.closeQuietly(in);
		}
	}

	public static final <T extends Collection<String>> T readLinesI(InputStream input, String encoding, ReadLinesCallI<T> call) {
		try {
			if (encoding == null) {
				return readLinesI(input, call);
			} else {
				InputStreamReader reader = new InputStreamReader(input, encoding);
				return readLinesI(reader, call);
			}
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	public static final <T extends Collection<String>> T readLinesI(InputStream input, ReadLinesCallI<T> call) {
		InputStreamReader reader = new InputStreamReader(input);
		return readLinesI(reader, call);
	}

	/**
	 * 把文件中每一行設置到集合中(never return null)
	 * 
	 * @param input
	 * @param call
	 * @return
	 * @throws IOException
	 */
	@SuppressWarnings("unchecked")
	public static final <T extends Collection<String>> T readLinesI(Reader input, ReadLinesCallI<T> call) {
		try {
			T t = call.getObj();
			Collection<String> coll = getColl(t);
			BufferedReader reader = new BufferedReader(input);
			String line = reader.readLine();
			line = IOUtils.readFirstLine(line);
			long startLineNum = call.getStartLineNum();
			long endLineNum = call.getEndLineNum();
			long totalLineNum = 0;
			String linePrev = null;
			String lineNext = null;
			boolean first = true;
			while (line != null) {
				totalLineNum++;
				if (first) {
					// 這里只讀取一次
					// 讀取下下一行
					lineNext = reader.readLine();
					first = false;
				}
				// 是否中斷
				if (call.interrupt(linePrev, line, lineNext, totalLineNum)) {
					break;
				}
				if (startLineNum <= totalLineNum && (endLineNum <= 0 || endLineNum >= totalLineNum)) {
					// 開始/結束行區間數據
					KV<String, Boolean> kv = call.changeLine(linePrev, line, lineNext, totalLineNum);
					if (kv != null) {
						line = kv.getK();
						boolean filter = kv.getV();
						// 是否過慮
						if (filter) {
							coll.add(line);
						}
					}
				}
				// 賦值上一行
				linePrev = line;
				// 讀取下一行
				line = lineNext;
				if (line != null) {
					// 讀取下下一行
					lineNext = reader.readLine();
				}
			}
			return (T) coll;
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	// readLinesBatchI
	// -----------------------------------------------------------------------
	public static final <T extends Collection<String>> List<T> readLinesBatchI(File file, ReadLinesCallI<T> call, ReadLinesBatchCallI<T> batchI) {
		return readLinesBatchI(file, null, call, batchI);
	}

	/**
	 * 把文件中每一行設置到批量集合中(never return null)
	 * 
	 * @param file
	 * @param encoding
	 * @param call
	 * @param batchI
	 * @return
	 * @throws IOException
	 */
	public static final <T extends Collection<String>> List<T> readLinesBatchI(File file, String encoding, ReadLinesCallI<T> call, ReadLinesBatchCallI<T> batchI) {
		List<T> lists = new ArrayList<T>();
		// 獲取總數
		KV<Long, Long> kv = readLinesCountI(file, call);
		long size = kv.getV();
		if (size > 0) {
			long start = System.currentTimeMillis();
			long batchSize = batchI.getBatchSize();
			if (batchSize > 1) {
				long preNum = size / batchSize;
				long modNum = size % batchSize;
				// 100/10=10
				for (long i = 1; i <= preNum; i++) {
					call.setStartLineNum((i - 1) * batchSize + 1);
					call.setEndLineNum(i * batchSize);
					setBatchCollI(file, encoding, call, batchI, lists);
				}
				if (modNum == 0) {
				} else {
					// 11/3=3...2
					// 設置剩余的量
					call.setStartLineNum(preNum * batchSize + 1);
					call.setEndLineNum(size);
					setBatchCollI(file, encoding, call, batchI, lists);
				}
			} else {
				setBatchCollI(file, encoding, call, batchI, lists);
			}
			long end = System.currentTimeMillis();
			long x = (end - start) / 1000;
			long y = (end - start) % 1000;
			logger.debug("全部讀取完畢...,總執行時間:" + (end - start) + "毫秒," + x + "." + (y < 100 ? "0" + y : y) + "秒");
		}
		return lists;
	}

	/**
	 * 批量設置集合
	 * 
	 * @param file
	 * @param encoding
	 * @param call
	 * @param batchI
	 * @param lists
	 * @throws IOException
	 */
	private static <T extends Collection<String>> void setBatchCollI(File file, String encoding, ReadLinesCallI<T> call, ReadLinesBatchCallI<T> batchI, List<T> lists) {
		logger.debug("正在讀取..." + (call.getEndLineNum() <= 0 ? "全部數據" : "[" + call.getStartLineNum() + "-" + call.getEndLineNum() + "]行數據"));
		long start = System.currentTimeMillis();
		T t = readLinesI(file, encoding, call);
		if (batchI.isCallBatchColl()) {
			batchI.callBatchColl(t);
		} else {
			lists.add(t);
		}
		long end = System.currentTimeMillis();
		long x = (end - start) / 1000;
		long y = (end - start) % 1000;
		logger.debug("讀取完畢..." + (call.getEndLineNum() <= 0 ? "全部數據" : "[" + call.getStartLineNum() + "-" + call.getEndLineNum() + "]行數據") + ",執行時間:" + (end - start) + "毫秒," + x + "." + (y < 100 ? "0" + y : y) + "秒");
	}

	/**
	 * 獲取對應的集合類型
	 * 
	 * @param t
	 * @return
	 * @throws IOException
	 */
	private static <T extends Collection<String>> Collection<String> getColl(T t) {
		Collection<String> coll = null;
		if (t instanceof List) {
			coll = (List<String>) t;
		} else if (t instanceof Set) {
			coll = (Set<String>) t;
		} else {
			throw new ServiceException("不支持的返回類型" + t);
		}
		return coll;
	}

	/**
	 * 查找沖突jar包
	 * 
	 * @param path
	 *            所要查找的JAR包的目錄
	 * @param className
	 *            要查詢的class,要帶包名的類名
	 * @return
	 */
	public static final List<String> findClassConflictJar(String path, String className) {
		List<String> results = new ArrayList<String>();
		className = className.replace('.', '/') + ".class";
		findClassConflictJar(path, className, results);
		return results;
	}

	/**
	 * 查找沖突jar包
	 * 
	 * @param path
	 *            所要查找的JAR包的目錄
	 * @param className
	 *            要查詢的class,要帶包名的類名
	 * @param results
	 *            沖突的jar文件路徑集合
	 */
	private static final void findClassConflictJar(String path, String className, List<String> results) {
		path = changePathSeparator(path, ConstantForEnum.ChangePathLastSeparator.ADD_AFTER);
		File file = new File(path);
		if (!file.exists()) {
			logger.warn("文件[" + file.getAbsolutePath() + "]不存在");
			return;
		}
		if (file.isFile()) {
			logger.warn("文件[" + file.getAbsolutePath() + "]不是目錄,強制返回結果");
			return;
		}
		String[] filelist = file.list();
		if (filelist == null) {
			logger.warn("文件[" + file.getAbsolutePath() + "]中沒有任何文件,強制返回結果");
			return;
		}
		for (int i = 0; i < filelist.length; i++) {
			String filePath = filelist[i];
			File temp = new File(path + filePath);
			// if ((temp.isDirectory() && !temp.isHidden() && temp.exists())) {
			if (temp.isDirectory()) {
				findClassConflictJar(path + filePath, className, results);
			} else {
				if (filePath.toLowerCase().endsWith("jar")) {
					try {
						java.util.jar.JarFile jarfile = new java.util.jar.JarFile(path + filePath);
						for (Enumeration<JarEntry> e = jarfile.entries(); e.hasMoreElements();) {
							String name = e.nextElement().toString();
							if (name.equals(className) || name.indexOf(className) > -1) {
								// System.out.println(path + filePath);
								results.add(path + filePath);
							}
							jarfile.close();
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			}
		}
	}

	// /**
	// * 查找沖突jar包
	// *
	// * @param objPath
	// * jar文件或目錄對象
	// * @param jarClass
	// * 每個jar路徑對應的class集合
	// * @param classResult
	// * 所有class(包路徑)對應的jar文件路徑
	// * @param conflictClass
	// * 沖突class(包路徑)對應的jar文件路徑
	// */
	// @SuppressWarnings("unchecked")
	// public static final void findJarConflictClass(Object objPath, Map<String, Set<JarClass>> jarClassResult, Map<String, Set<String>> classResult, Map<String, Set<String>> conflictResult) {
	@SuppressWarnings("unchecked")
	public static final void findJarConflictClass(JarParams params) {
		Collection<String> values = null;
		Object objPath = params.getObjPath();
		if (CheckUtil.isNull(objPath)) {
			// 如果沒有設置objPath,則默認path為objPath值
			objPath = params.getPath();
		}
		if (objPath instanceof String) {
			// 此處不會被執行
			values = new HashSet<String>();
			values.add(String.valueOf(objPath));
		} else if (objPath instanceof Collection) {
			values = ((Collection<String>) objPath);
		} else if (objPath instanceof String[]) {
			values = Arrays.asList((String[]) objPath);
		}
		if (values == null || values.size() == 0) {
			logger.warn("jar文件或目錄對象數據格式不正確");
			return;
		}
		// 循環寫
		Iterator<String> it = values.iterator();
		while (it.hasNext()) {
			// doFindJarConflictClass(it.next(), jarClassResult, classResult, conflictResult);
			// 設置path值
			params.setPath(it.next());
			doFindJarConflictClass(params);
		}
	}

	// /**
	// * 查找沖突jar包
	// *
	// * @param path
	// * jar文件或目錄路徑
	// * @param jarClass
	// * 每個jar路徑對應的class集合
	// * @param classResult
	// * 所有class(包路徑)對應的jar文件路徑
	// * @param conflictClass
	// * 沖突class(包路徑)對應的jar文件路徑
	// */
	// public static final void findJarConflictClass(String path, Map<String, Set<JarClass>> jarClassResult, Map<String, Set<String>> classResult, Map<String, Set<String>> conflictResult) {
	private static final void doFindJarConflictClass(final JarParams params) {
		final String path = changePathSeparator(params.getPath(), ConstantForEnum.ChangePathLastSeparator.ADD_AFTER);
		final Map<String, Set<JarClass>> jarClassResult = params.getJarClassResult();
		final Map<String, Set<String>> classResult = params.getClassResult();
		final Map<String, Set<String>> conflictResult = params.getConflictResult();
		File file = new File(path);
		if (!file.exists()) {
			logger.warn("文件[" + file.getAbsolutePath() + "]不存在");
			return;
		}
		if (file.isFile()) {
			logger.warn("文件[" + file.getAbsolutePath() + "]不是目錄,強制返回結果");
			return;
		}
		final String[] filelist = file.list(new FilenameFilter() {
			@Override
			public boolean accept(File dir, String name) {
				// System.out.println(dir + "," + name + "," + FilenameUtils.getExtension(name));
				String extension = FilenameUtils.getExtension(name);
				if (CheckUtil.isNotNull(extension)) {
					if ("jar".equals(extension.toLowerCase())) {
						return true;
					}
				}
				return false;
			}
		});
		if (filelist == null || filelist.length == 0) {
			logger.warn("文件[" + file.getAbsolutePath() + "]中沒有任何文件,強制返回結果");
			return;
		}
		for (int i = 0; i < filelist.length; i++) {
			final String filePath = filelist[i];
			doJarClass(params, path, jarClassResult, classResult, conflictResult, filePath);
		}
	}

	/**
	 * 處理jar中的class
	 * 
	 * @param params
	 * @param path
	 * @param jarClassResult
	 * @param classResult
	 * @param conflictResult
	 * @param filePath
	 */
	private static final void doJarClass(final JarParams params, final String path, final Map<String, Set<JarClass>> jarClassResult, final Map<String, Set<String>> classResult, final Map<String, Set<String>> conflictResult, final String filePath) {
		File temp = new File(path + filePath);
		// if ((temp.isDirectory() && !temp.isHidden() && temp.exists())) {
		if (temp.isDirectory()) {
			// findJarConflictClass(path + filePath, jarClassResult, conflictResult, classResult);
			doFindJarConflictClass(params);
		} else {
			try {
				String jarPath = changePathSeparator(path + filePath);
				// System.out.println(jarPath);
				Set<JarClass> jarClasss = null;
				// 可以為null
				if (jarClassResult != null) {
					jarClasss = jarClassResult.get(jarPath);
					if (jarClasss == null) {
						// 不存在
						jarClasss = new HashSet<JarClass>();
						jarClassResult.put(jarPath, jarClasss);
					}
				}
				java.util.jar.JarFile jarfile = new java.util.jar.JarFile(path + filePath);
				for (Enumeration<JarEntry> e = jarfile.entries(); e.hasMoreElements();) {
					// 獲取jar文件
					String classPath = e.nextElement().toString();
					String extension = FilenameUtils.getExtension(classPath);
					String fullPath = jarPath + "!" + classPath;
					// 是否是class文件
					if ("class".equals(extension.toLowerCase())) {
						// 轉換為class包
						int index = classPath.lastIndexOf(".");
						String prefixClassName = classPath;
						if (index > -1) {
							prefixClassName = classPath.substring(0, index);
						}
						String className = prefixClassName.replaceAll("/", ".");
						// 添加class
						Set<String> classJars = classResult.get(className);
						if (classJars == null) {
							classJars = new HashSet<String>();
							classResult.put(className, classJars);
						} else {
							// 沖突了
							Set<String> classConflictJars = conflictResult.get(className);
							if (classConflictJars == null) {
								classConflictJars = new HashSet<String>();
								conflictResult.put(className, classConflictJars);
							}
							// 添加jar文件(會自動去重)
							classConflictJars.add(jarPath);
							// 添加沖突的class對應的所有jar文件路徑
							classConflictJars.addAll(classJars);
						}
						classJars.add(jarPath);
						if (jarClasss != null) {
							JarClass jarClass = new JarClass();
							// 設置jar屬性
							jarClass.setFileDir(path);
							jarClass.setClassPath(classPath);
							jarClass.setClassName(className);
							jarClass.setFullPath(fullPath);
							jarClasss.add(jarClass);
						}
					} else {
						logger.debug("文件[" + fullPath + "]不是class文件,繼續查找");
					}
				}
				jarfile.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	/**
	 * 寫文件
	 * 
	 * @param filePath
	 *            文件路徑
	 * @param content
	 *            文件內容
	 * @throws IOException
	 */
	public static final void write(String filePath, String content) {
		write(new File(filePath), content, "UTF-8");
	}

	/**
	 * 寫文件
	 * 
	 * @param filePath
	 *            文件路徑
	 * @param content
	 *            文件內容
	 * @param encoding
	 *            編碼
	 * @throws IOException
	 */
	public static final void write(String filePath, String content, String encoding) {
		write(new File(filePath), content, encoding);
	}

	/**
	 * 寫文件
	 * 
	 * @param filePath
	 *            文件對象
	 * @param content
	 *            文件內容
	 * @throws IOException
	 */
	public static final void write(File file, String content) {
		write(file, content, null);
	}

	/**
	 * 寫文件
	 * 
	 * @param filePath
	 *            文件對象
	 * @param content
	 *            文件內容
	 * @param encoding
	 *            編碼
	 * @throws IOException
	 */
	public static final void write(File file, String content, String encoding) {
		try {
			createFolderOrFile(file, false);
			if (file == null)
				return;
			if (CheckUtil.isNull(content)) {
				content = "";
			}
			if (CheckUtil.isNull(encoding)) {
				encoding = "UTF-8";
			}
			BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file));
			OutputStreamWriter writer = new OutputStreamWriter(bos, encoding);
			writer.write(content);
			writer.flush();
			writer.close();
		} catch (Exception e) {
			throw new ServiceException(e);
		}
	}

	/**
	 * 寫文件
	 * 
	 * @param content
	 *            文件字節內容
	 * @param encoding
	 *            編碼
	 * @throws IOException
	 */
	public static void write(byte[] content, File outFile) {
		FileOutputStream fout = null;
		try {
			createFolderOrFile(outFile);
			fout = new FileOutputStream(outFile);
			fout.write(content);
			fout.flush();
		} catch (Exception e) {
			throw new ServiceException(e);
		} finally {
			if (fout != null) {
				try {
					fout.close();
				} catch (Exception e2) {
				}
			}
		}
	}

	/**
	 * 將圖片文件轉化為字節數組字符串,并對其進行Base64編碼處理
	 * 
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return 頁面地址
	 */
	public static final String GetImageStr(String imgFilePath) {
		byte[] data = null;
		BufferedInputStream bis = null;
		// 讀取圖片字節數組
		try {
			bis = new BufferedInputStream(new FileInputStream(imgFilePath));
			data = new byte[bis.available()];
			bis.read(data);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (bis != null) {
				try {
					bis.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		// 對字節數組Base64編碼
		BASE64Encoder encoder = new BASE64Encoder();
		// 返回Base64編碼過的字節數組字符串
		return encoder.encode(data);
	}

	/**
	 * 對字節數組字符串進行Base64解碼并生成圖片
	 * 
	 * @author 張軍
	 * @date 2015-11-03 21:59:00
	 * @modifiyNote
	 * @version 1.0
	 * @return 頁面地址
	 */
	public static final boolean GenerateImage(String imgStr, String imgFilePath) {
		// 圖像數據為空
		if (imgStr == null)
			return false;
		if (imgStr.indexOf("data:image/jpeg;base64,") != -1) {
			imgStr = imgStr.substring("data:image/jpeg;base64,".length());
		}
		BASE64Decoder decoder = new BASE64Decoder();
		BufferedOutputStream bos = null;
		try {
			// Base64解碼
			byte[] bytes = decoder.decodeBuffer(imgStr);
			for (int i = 0; i < bytes.length; ++i) {
				if (bytes[i] < 0) {// 調整異常數據
					bytes[i] += 256;
				}
			}
			// 生成jpeg圖片
			bos = new BufferedOutputStream(new FileOutputStream(imgFilePath));
			bos.write(bytes);
			bos.flush();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			if (bos != null) {
				try {
					bos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}



更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 免费国产女王调教在线视频 | 2020国产精品香蕉在线观看 | 亚洲欧洲一区 | 亚洲四虎影院 | 台湾精品一区二区蜜桃 | 婷婷丁香六月 | 深夜福利一区 | 国产男生夜间福利免费网站 | h漫全彩纯肉无码网站 | 少妇精品免费视频欧美 | 国内精品少妇 | 丁香六月色婷婷 | 午夜免费剧场 | 成人小视频在线播放 | av在线播放日韩亚洲欧我不卡 | 亚洲va中文字幕不卡无码 | 不卡av在线 | 久久七 | 野外做受又硬又粗又大视幕 | 亚洲无卡 | 国产精品亚洲天堂 | 色网址在线观看 | 一个人看的www在线高清视频 | 在线免费观看中文字幕 | 国产成人精品免费 | 亚洲第一狼人天堂久久 | 一区二区三区三区 | 欧美乱轮 | 中文字幕久久波多野结衣av不卡 | 91一二三 | 亚洲日日爽| 久久理论片午夜琪琪电影网 | 国产精品亚洲a∨天堂 | 夜夜骑日日操 | 日韩精品久久久久 | 日韩黄色免费看 | 搐搐国产丨区2区精品av | 色综合久久婷婷88 | 少妇xxx网站 | jizzjizz亚洲中国少妇 | 亚洲视频黄色 | 亚洲色欧美另类 | 中文字幕在线人 | 2021亚洲卡一卡二新区入口 | 99久久精品九九亚洲精品 | 亚洲精品无码你懂的 | 一二三区av| 不卡无码av一区二区三区 | 久热亚洲| 亚洲综合国产一区二区三区 | 亚洲夜夜欢a∨一区二区三区 | 精品国产一区二区三区天美传媒 | 日韩一二区 | 国产 | 久你欧洲野花视频欧洲1 | 99热久久久久久久久久久174 | 人妻av无码中文专区久久 | 日本黄色美女网站 | 成人免费直播 | 国产性色 | 欧美日韩国语 | 两根大肉大捧一进一出好爽视频 | 国产 中文 亚洲 日韩 欧美 | 免费观看羞羞视频网站 | 91精品欧美一区二区三区 | 国产最爽乱淫视频免费 | 亚洲国产日韩在线 | 午夜免费啪视频在线无码 | 一区二区精品视频 | 成人黄色毛片视频 | 精品少妇| 国产成人精品亚洲日本语言 | 少妇精品无码一区二区免费视频 | 加勒比色老久久综合网 | 无遮挡无码h纯肉动漫在线观看 | 国产精品卡一卡二卡三 | 一级做性色a爱片久久毛片欧 | 亚洲高清在线免费 | 中文字幕一区在线 | 日韩av无码社区一区二区三区 | 国产高清中文字幕 | 女人爽得直叫免费视频 | 热久久美女精品天天吊色 | 日日夜夜嗷嗷叫 | 亚洲色在线v中文字幕 | 国产偷抇久久精品a片69麻豆 | 欧美日韩国产中文高清视频 | 欧美激情一区二区 | 99国产成人精品 | 亚洲xx视频| 亚洲一区激情校园小说 | 在线免费观看日本视频 | 久久久久国产精品人妻电影 | 无人视频在线观看免费播放软件 | 久久一级片 | 欧美z0zo人禽交欧美人禽交 | 久久er热在这里只有精品66 | 国产色妇 | 国产麻豆网 | 九九精品久久 | 欧美三级成人 | 性色欲情网站iwww | 青青草好吊色 | 免费超级淫片日本高清视频 | 三级毛片视频 | 在线看片免费人成视频久网下载 | 中文字幕一区二区精品区 | 熟妇五十路六十路息与子 | 爱色成人网 | 天天操欧美 | 小嫩批日出水视频 | 亚洲中文字幕高清乱码在线 | 丰满少妇人妻hd高清果冻传媒 | 欧美日韩综合精品一区二区 | 久久网站免费观看 | 国产精品无码久久久久久久久久 | 日韩一欧美内射在线观看 | 日本a级黄绝片a一级啪啪 | 亚洲午夜私人影院在线观看 | 日韩亚洲视频 | 国产精品区一区第一页 | 欧美亚洲色图视频 | 国产女厕偷窥系列在线视频 | 白浆视频在线观看 | 久久久www成人免费毛片 | 国产成人综合亚洲亚洲国产第一页 | 粉嫩av一区二区三区免费野 | 男女69式互吃动态图在线观看 | 动漫一品二品精区在线 | 久久久一区二区三区捆绑sm调教 | 亚洲欧美精品无码一区二区三区 | 超碰人人擦| 少妇三级看三级视频 | 无码欧精品亚洲日韩一区 | 特级黄色毛片视频片子 | caoporn免费在线视频 | 18禁止观看强奷免费国产大片 | 伊人精品综合 | 91视频在线免费观看 | 做爰xxxⅹ性69免费视频 | 久久久综合色 | 秋霞鲁丝片av无码中文字幕 | 亚洲aⅴ一区二区三区 | 久久久久久97 | 欧美 日产 国产在线观看 | 永久91嫩草亚洲精品人人 | 久久小草亚洲综合 | 好吊妞人成免费视频观看 | 91av福利| 日韩成人高清视频 | 女人张开双腿让男人猛桶 | 久久人| 人妻互换 综合 | 日本热久久 | 国内真实迷j下药在线观看 视频在线+欧美十亚洲曰本 | 网站黄色在线免费观看 | 国产成人成网站在线播放青青 | 精品一区二区久久 | 少妇无码av无码一区 | 国产日产欧洲无码视频 | 97久久草草超级碰碰碰 | 精品国产18久久久久久二百 | 日本熟妇浓毛 | 精品人妻无码区在线视频 | 东京热久久综合伊人av | 婷婷日韩 | 欧美肉体xxxx裸体137大胆 | 狠狠色婷婷久久综合频道毛片 | 亚洲码无人客一区二区三区 | 亚洲图片欧美在线 | 人人人草 | 亚洲一区av无码少妇电影 | 国产白丝jk捆绑束缚调教视频 | 妺妺窝人体色www在线下载 | 国产精品久久久久久久久久嫩草 | 日日摸日日碰人妻无码老牲 | 在线你懂的 | 亚洲精品无圣光一区二区 | 色综合色综合色综合色综合 | 好爽好湿好硬好大免费视频 | 日韩免费在线视频观看 | 人人妻人人澡人人爽欧美二区 | 亚洲最大天堂网 | 国产精选污视频在线观看 | 美女粉嫩饱满的一线天mp4 | 亚洲国产日韩综合久久精品 | 欧美xo影院 | 久久人人爽爽人人片av | 在线看的网页 | 久久国产成人精品av | 可以直接看av的网址 | 国产成人免费在线观看视频 | 天堂网资源 | 亚洲s久久久久一区二区 | 亚洲aⅴ无码天堂在线观看 黄色一级片日本 | 久久丫精品久久丫 | 在线国产二区 | 亚洲另类精品无码专区 | 91精品国产综合久久久久久久久 | 青青草娱乐在线 | 国产www色 | 欧美 国产 亚洲 卡通 综合 | 久久国产成人午夜av影院 | 亚洲无线码高清在线观看 | 日日躁你夜夜躁你av蜜 | 亚洲最大av资源站无码av网址 | 永久免费的啪啪网站免费观看浪潮 | 波多野结衣二区三区 | 亚洲人成图片小说网站 | 君岛美绪一区二区三区在线视频 | gogo精品国模啪啪作爱 | 亚洲日本欧美日韩高观看 | 亚洲深深色噜噜狠狠爱网站 | 人妖系列网站在线观看 | 一级特黄少妇高清毛片 | 国语一区二区 | 爽爽影院在线看 | 18欧美乱大交hd双性人 | 18禁高潮出水呻吟娇喘蜜芽 | 欧美三日本三级少妇99 | 午夜精品久久久久久久99热浪潮 | 成人看片黄a免费看小说 | 四虎tv | 69做爰高潮全过程免 | 在线日韩av永久免费观看 | 无码h黄肉3d动漫在线观看 | 亚洲 欧美 国产 动漫 综合 | 99热在线精品观看 | 欧美在线视频免费观看 | 无码亲近乱子伦免费视频在线观看 | 无码三级中文字幕在线观看 | 精品久久久久久亚洲中文字幕 | 成人精品影院 | 57pao国产精品一区 | 一本色道久久88综合日韩精品 | 国产自产高清不卡 | 国内久久精品 | 国产又黄又粗又猛又爽 | 中文天堂最新版资源www | 午夜精品在线播放 | 中文不卡视频 | 一边摸一边抽搐一进一出口述 | 黄色av地址 | 欧美一级爽aaaaa大片 | 99青青 | 国产精品aⅴ免费视频 | 婷婷第四色| 天堂资源在线视频 | 亚洲乱码视频在线观看 | 亲嘴扒胸摸屁股激烈网站 | 免费女人裸体视频无遮挡免费网站 | 日本特黄网站 | 国产极品美女高潮无套在线观看 | 97亚洲色欲色欲综合网 | 国产一区二区免费视频 | 三级视频网址 | 国产尤物av| 一本一道波多野结衣中文av字幕 | 美女在线网站 | 农村少妇无套内谢粗又长 | 精品国产乱码久久久久软件 | 精品国产色情一区二区三区 | 男人和女人做爽爽免费视频 | 呻吟揉丰满对白91乃欧美区 | 日本少妇作爱视频 | 一本加勒比hezyo日本变态 | 欧美自拍亚洲综合在线 | 亚洲天堂免费视频 | av在线免费网址 | 在线黄色毛片 | 日韩av在线播 | 欧美成人一区二免费视频小说 | 91视频免费入口 | 五月天桃花网 | 99这里只有精品 | 免费成人在线视频观看 | 青青在线免费观看 | 中文字幕第六页 | 亚洲视频精品一区二区 | 国产免费丝袜调教视频免费的 | 伊人久久大香线蕉综合av | 亚洲中文色欧另类欧美 | 特级西西女人444wwww人体 | 文中字幕一区二区三区视频播放 | 国产精品久久久久久久免费软件 | 色爱无码av综合区老司机非洲 | 国产日韩中文字幕 | 69福利视频 | 桃色在线视频 | 少妇毛茸茸bbw高清 在线观看的网址 | 熟女人妇交换俱乐部 | 欧美亚洲日韩不卡在线在线观看 | 国产交换配乱婬视频 | 无码中文字幕日韩专区 | 九九精品视频在线 | 日日噜噜夜夜爽 | 伊人狠狠色 | 成人午夜亚洲精品无码区 | 久久久久99精品成人片欧美 | 欧美八区| 久久久人人人婷婷色东京热 | 毛片无码一区二区三区a片视频 | 久久av影院| 中文字幕+乱码+中文乱码91 | av视觉盛宴 | 久久人人爽av | 免费视频在线看 | 337p日本大胆噜噜噜鲁 | 色婷婷综合视频 | 一本色道久久东京热 | xxxx日本少妇做受 | 久久婷婷色香五月综合缴缴情 | 国产内射大片99 | 美女张开腿喷水高潮 | 婷婷在线五月 | 特大巨黑吊xxxx高潮 | 日韩色中色 | 黄av免费 | 成人免费无码婬片在线观看免费 | 日韩综合无码一区二区 | 色屁屁www免费看欧美激情 | 亚洲精品日日夜夜 | 人人爽人人爽人人 | 2019自拍偷拍 | 国产粉嫩呻吟一区二区三区 | 色综合天天天天做夜夜夜夜做 | 欧美老妇与zozoz0交 | 精品福利一区二区三区免费视频 | 欧美五月婷婷 | 人人妻人人添人人爽欧美一区 | 内射气质御姐视频在线播放 | 吃奶呻吟打开双腿做受动态图 | 国产精品调教奴变态 | 久久影院精品 | 日韩性网站 | 国产在线不卡一区 | 男人天堂2023 | 亚洲伊人色综合网站小说 | av九九九 | 性高朝久久久久久久 | 亚洲精品欧美日韩 | 天堂中文8资源在线8 | 一个色综合亚洲色综合 | 国产美女福利在线观看 | 亚洲综合免费 | 亚洲成人精品在线播放 | 玩弄放荡丰满少妇视频 | 九一在线观看免费高清视频 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 色八戒一区二区三区四区 | 精品免费人成视频网 | 青青草国产成人久久 | 精品99在线 | 综合网久久 | 成人一区二区三区久久精品嫩草 | 国产精品成人久久 | 成人gav | 亚洲最新无码中文字幕久久 | 丰满少妇在线观看网站 | 17c在线视频在线观看 | 中文av无码人妻一区二区三区 | 亚洲日韩乱码中文无码蜜桃臀网站 | 欧美极品少妇xxxxⅹ免费视频 | 国产人成亚洲第一网站在线播放 | 污片网站在线观看 | 免费成人深夜夜网站 | 亚洲精品精华液一区 | 久久久久xxxx | 网址在线观看你懂的 | 免费无码精品黄av电影 | 男女啪啪抽搐呻吟高潮动态图 | 久久理论片琪琪电影院 | 秋霞国产 | 久久久精品日本 | 又色又污又爽又黄的网站 | 国产精品久久久久久久久久久久久久久久久 | 黄网免费在线观看 | 色偷偷偷在线视频播放 | 乱论av| 国产揄拍国内精品对白 | 黄色一级大片网站 | 天天午夜| 国产又粗又硬又爽的视频 | 精品无码午夜福利电影片 | 欧美日韩一本 | www国产精品内射老熟女 | 国产老熟女网站 | 狠狠干狠狠艹 | 国产中文字幕在线免费观看 | 粉色午夜视频 | 精品欧美一区二区三区 | 国产在线综合视频 | 亚洲卡1卡2卡四卡乱码 | 国产成人福利在线 | 国产精品自在拍在线播放 | 国内超碰 | 热热热热热色 | 在线观看三区 | 无码高潮少妇毛多水多水 | www.色中色| 超碰caopeng | 成本人无码h无码动漫在线网站 | 熟女俱乐部五十路六十路av | 看免费5xxaaa毛片 | 国产乱淫av国产8 | 久久精品伊人波多野结衣 | 在线免费观看中文字幕 | 国产精品户露av在线户外直播 | 久久精品国产99精品国产亚洲性色 | 在线免费观看av网址 | 女人爽到高潮视频免费直播 | 成a∨人片在线观看无码 | 国产一级特黄真人毛片 | 国产精品久久久久久久久电影网 | 日本999视频 | 五月丁香激激情亚洲综合 | 天堂网2018 | 一级片在线视频 | 亚洲性夜色噜噜噜网站2258kk | 日韩精品无码一区二区三区av | 激情午夜影院 | 欧美精品免费看 | 国产一区二区色 | 免费人成在线观看网站 | 日本综合久久 | 91原创国产 | 成人影院欧美 | 99久久国产宗和精品1上映 | 色综合久久88色综合天天6 | 欧美嫩草影院 | 久久精品国产亚洲一区二区三区 | 亚洲欧美一区二区三区四区五区 | 久草在线视频免费资源观看 | 少妇精品无码一区二区三区 | 九九九色 | 日韩在线免费 | 欧美一区二区三区免费 | 成人aⅴ综合视频国产 | 97人人人人 | 天堂а√8在线最新版在线 91亚洲精华 | 无码手机线免费观看 | 成人做爰视频www网站小优视频 | 国产日本一级二级三级 | 欧美日韩精品一区二区三区高清视频 | 麻豆av少妇aa喷水 | 欧美性免费 | 精品国产av一区二区三区 | 国产亚洲欧美日韩亚洲中文色 | 中文字幕一区二区三区久久网站 | 成人国产精品??电影 | 一级老太bbbbbbbbb中国 | 久久国产福利播放 | 国产又粗又黄又爽又硬 | 少妇激情一区二区三区 | 99r | 99久久人妻无码精品系列蜜桃 | 色婷婷六月亚洲综合香蕉 | 婷婷六月丁香缴 清 | 二区在线观看 | 99热久re这里只有精品小草 | 国产精品裸体瑜伽视频 | 国产乱人伦真实精品视频 | 精品一区二区三区无码视频 | 粉嫩虎白女p虎白女在线 | 国产情侣av在线 | 日本肉体做爰猛烈高潮全免费 | 国产精品国产精品国产专区蜜臀ah | 4hu最新| 亚洲人成无码网www电影麻豆 | 欧美三级久久久 | 欧美一级日韩一级 | 91爱爱影视 | 四虎首页 | 97久久久综合亚洲久久88 | 日韩欧美自拍 | 一级片在线视频 | 精选国产av精选一区二区三区 | 久久在线精品 | 日韩一级视频在线 | 欧美阿v天堂视频在99线 | 亚洲综合国产成人丁香五月激情 | 人人爽久久涩噜噜噜丁香 | 内射气质御姐视频在线播放 | 久久久久人妻一区视色 | 亚洲欧洲日产韩国无码 | 免费人成精品欧美精品 | 99热激情 | 亚洲 变态 欧美 另类 捆绑 | 国产精品制服丝袜白丝 | 天天操天天干天天插 | 国产男女猛烈无遮掩视频免费网站 | 色眯眯视频 | 奇米视频888战线精品播放 | 91久草视频 | 精品福利网站 | 天天色影| 国产91精品看黄网站在线观看动漫 | 女人舌吻男人茎视频 | 国产福利一区视频 | 中文字幕综合网 | 日韩人妻熟女中文字幕a美景之屋 | 在线高清av | 亚洲乱码高清午夜理论电影 | 浪潮av一区二区 | 2020狠狠狠狠久久免费观看 | 一区二区三区免费在线 | 筱田优在线 | 国产三级在线观看播放视频 | 日韩人妻熟女毛片在线看 | 在线天堂新版资源www在线 | 国产熟女高潮视频 | 天天色官网 | 天堂免费av | 肉动漫在线 | 亚洲a级女人内射毛片 | 蜜桃91丨九色丨蝌蚪91桃色 | 91av欧美| 欧美色xxx | 国产精品v欧美精品∨日韩 天天躁日日躁狠狠躁喷水软件 | 丁香激情网 | 亚洲乱色熟女一区二区三区麻豆 | av无码免费岛国动作片 | 无码免费毛片手机在线 | 青青国产揄拍视频在线观看 | 激情内射亚洲一区二区三区爱妻 | 国产高清精品软件丝瓜软件 | 最新免费黄色 | 在线播放国产精品 | 色综合久久88色综合天天免费 | 中文字幕日韩精品亚洲一区 | 中文字幕日韩专区 | 在线久久 | 中文成人无码精品久久久动漫 | 日本黄网站免费 | 婷婷丁香色综合狠狠色 | 伊人国产在线观看 | 国产三级短视频 | 在线免费91 | 久久精品免费一区二区 | 男女性爽大片视频 | 日本少妇撒尿com | 亚洲欧美日韩精品一区二区 | 国产97超碰人人做人人爱 | 91精品国产综合久久福利不卡 | 国产视频在线看 | 无码人妻久久1区2区3区 | 青青草.com| 欧美最骚最疯日b视频观看 大杳蕉狼人伊人 | 天天爱综合 | 欧美激情精品久久久久久免费 | 毛片免费全部无码播放 | www.九九热.com | 精品亚洲国产成人a片app | 国产999精品久久久 中文字幕在线成人 | 上海少妇高潮狂叫喷水了 | 无人区码一码二码三码区别新月 | 欧美福利网 | 国产av人人夜夜澡人人爽麻豆 | 91豆麻精品91久久久久久 | 国产成人久久久精品免费澳门 | 99在线免费播放 | 久久国产色欲av38 | 欧美一级理论片 | 亚洲中文字幕无码不卡电影 | 亚洲狠狠婷婷综合久久久久图片 | 久久久综合九色合综 | 美女内射毛片在线看3d | 九九综合九色综合网站 | 欧美做受xxxxxⅹ性视频 | 精品一区二区三区在线播放视频 | www.伊人久久| 色一情一乱一伦一区二区三区四区 | 成人在线三级 | 日韩精品一区二区亚洲 | 啪啪.com| 麻豆一区二区三区在线观看 | 丝袜毛片| 青青久久av北条麻妃黑人 | 日韩欧美国产高清91 | 成人亚洲一区二区三区在线 | 久久永久免费视频 | 天天摸天天干 | 免费网站观看www在线观 | 国精品无码一区二区三区在线 | 亚洲精品乱码久久久久久久 | 日韩一级免费看 | а天堂中文在线官网在线 | 日韩免费无码视频一区二区三区 | 国产乱人伦偷精品视频免观看 | 国产人妖一区二区 | 天堂va欧美va亚洲va好看va | 久久免费视频在线观看6 | 又黄又爽又色成人免费视频体验区 | 无码草草草在线观看 | 国产男女无遮挡猛进猛出免费 | 亚洲一卡2卡3卡4卡5卡精品 | 亚洲成a∨人在线播放欧美 就爱啪啪网站 | 亚洲 小说 欧美 另类 社区 | 92av视频 | 自拍偷拍第五页 | 国产午夜伦理片 | 超碰伊人网 | 99久久久久国产精品免费人果冻 | 四虎国产精品永久地址99 | 欧美亚洲视频在线观看 | 在线看毛片的网站 | 影音先锋人妻啪啪av资源网站 | 夜夜躁狠狠躁日日躁 | 欧美精品二区三区四区免费看视频 | 亚洲综合日韩av无码毛片 | 五月天伊人网 | 在线观看国产网址你懂的 | 最新日韩av在线 | 秋霞av一区二区二三区 | 日韩和的一区二区 | 男女羞羞羞视频午夜视频 | 国产av激情无码久久 | 久久躁日日躁aaaaxxxx | 日本在线免费视频 | 日韩欧美国内 | 亚洲精品国产一区二区精华液 | 波多野结衣久久精品 | 日韩精品视频久久 | 亚洲丰满熟妇在线播放电影全集 | 他用舌头给我高潮喷水在线 | 日韩在线视频线观看一区 | 日韩在线观看高清 | 狠狠色丁香久久婷婷综合_中 | 黄色片在线 | 九九自拍 | 女人毛片a毛片久久人人 | 欧美日韩中文在线视频 | 91小视频在线 | 国产a∨国片精品白丝美女视频 | 国产免费美女 | 欧美一级大片在线播放 | 亚洲成在人线av | 国产亚洲欧美日韩亚洲中文色 | 日本在线观看一区 | 日本少妇寂寞少妇aaa | 国产乡下妇女做爰视频 | 欧美性综合| cao逼视频| 亚洲日韩中文字幕无码一区 | 日韩在线色视频 | 亚洲国产成人片在线观看无码 | 午夜啪啪福利 | 宝贝腿开大点我添添公视频免费 | 欧美在线观看不卡 | 一本一本久久a久久 | 久久传媒av性色av人人爽网站 | 无码中字出轨中文人妻中文中 | 欧美性xxxx狂欢老少配 | 超碰95在线 | 激情成人综合网 | 国产精品久久久久久久久久 | 亚洲成a人片在线播放 | 国产小视频网址 | 一本到在线视频 | 亚洲一区二区视频在线观看 | 啪啪黄色网址 | 成年无码按摩av片在线观看 | 夜夜添夜夜添夜夜摸夜夜摸 | 噜噜吧噜吧噜吧噜噜网a | 国产又色又爽又黄的网站免费 | 国产传媒中文字幕 | 国产日韩一区二区三 | 麻豆安全免费网址入口 | 狠狠五月婷婷 | 日本一级免费视频 | 91精品毛片一区二区三区 | 国产成人一区二区三区在线播放 | 亚洲欧美激情视频 | 日本高清视频色wwwwww色 | 91人人插 | 又爽又黄又无遮挡的视频 | 无码人妻丰满熟妇啪啪欧美 | 亚洲成a人蜜臀av在线播放 | 亚洲乱码一二三四区 | 欧美日韩精品一区二区三区在线 | 狠狠做六月爱婷婷综合aⅴ 亚洲精品乱码久久久久蜜桃 | 小鲜肉洗澡时自慰网站xnxx | 裸体一区二区三区 | 精品一区二区三区国产在线观看 | 国产网红无码精品福利网 | 久久永久免费人妻精品下载 | 成人免费午夜无码视频 | 国产日产欧美一区二区三区 | 富二代av | 九色网址 | 亚洲成av人片天堂网老年人 | 国产无遮挡乱子伦免费精品 | 婷婷爱五月 | 日韩人妻无码一区二区三区久久99 | 国产成人精品.视频 | 在线观看黄a∨免费无毒网站 | 久久99视频精品 | 午夜视频国产 | 古代高h肉辣浪荡np轮j | 91精品国产欧美一区二区成人 | 日韩第九页 | 日本黄h兄妹h动漫一区二区三区 | 国产欧美一区二区三区在线老狼 | 精品国产一区二区三区四区动漫a | 69视频一区| 国产精品99久久久久宅男软件功能 | 最新中文字幕一区 | 人狥杂交一区欧美二区 | 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | 日本少妇三级hd激情在线观看 | 黑色丝袜脚足国产在线看 | 人人妻人人澡人人爽精品欧美 | 久久久久人妻精品一区二区三区 | 国产色青青视频在线观看撒 | 日韩午夜性春猛交xxxx | 夜夜躁狠狠躁日日躁麻豆 | 日本成片区免费久久 | 婷婷网色偷偷久久久99超碰 | 日韩中文字幕在线一区二区三区 | 国产午夜av秒播在线观看 | 国产欧美日韩另类精彩视频 | 欧美日韩精品一区二区三区 | 影音先锋成人资源网站 | 亚洲精品无码你懂的网站 | 国产无遮挡18禁无码网站 | 欧美性猛交xxxx免费看久久 | 亚洲国产成人片在线观看 | 天堂在/线中文在线资源 官网 | 久久婷婷色香五月综合缴缴情 | 国产精品成人免费精品自在线观看 | 欧美丰满少妇xxxx性 | 欧美日韩三 | 国产口爆吞精在线视频 | 手机成亚洲人成电影网站 | 欧美性生交xxxxx久久久 | 久久久久久动漫 | 国产精品自在拍在线播放 | 亚洲一区二区三区av天堂 | 91www在线观看 | 性欧美大战久久久久久久久 | 国产综合婷婷 | 久久91精品国产91久久久 | 欧美一a一片一级一片 | 国产啪精品视频网站免费尤物 | 999精品无码a片在线1级 | 国产精品人妻一区二区三区四 | 久久久亚洲色 | 国产在线码观看超清无码视频 | 久久人人97超碰国产公开 | 人人爽人人插 | 免费观看潮喷到高潮大叫网站 | 午夜无码区在线观看 | 国产露脸av| 乱中年女人伦av一区二区 | 91激情在线 | 久久久青草婷婷精品综合日韩 | 三级理论中文字幕在线播放 | 黄视频网站在线看 | 五月天激情婷婷婷久久 | 欧美日韩一区二区三区不卡 | 久久久一本精品99久久精品66 | 亚洲精品国产精品乱码不卡 | 夜夜嗨av涩爱av牛牛影视 | 色综合天天综合天天更新 | 国产精品黄页免费高清在线观看 | 制服丝袜av无码专区 | 精品午夜国产福利在线观看 | 99久久精品国产自在首页 | 国产精品久久久久久99人妻精品 | 少妇精品无码一区二区三区 | 亚洲高清免费视频 | 日本亲子乱子伦xxxx | 久久久中日ab精品综合 | 日本一级理论片在线大全 | 婷婷色人阁| 精品国产肉丝袜久久 | av免费在线观看网站 | 婷婷色在线播放 | 妹子色综合 | 巨爆乳无码视频在线观看 | 久久精品99久久香蕉国产 | 国产精品www色诱视频 | 不卡无码人妻一区二区 | 韩日av一区二区 | 久久夫妻视频 | 中文有码一区 | 久久网站免费看 | 精品国产乱码久久久久夜 | 久久午夜夜伦鲁鲁片无码免费 | 538任你躁在线精品免费 | 日韩精品毛片 | 真人性囗交69视频 | 曰韩av | 一级黄色免费看 | 衣服被扒开强摸双乳18禁网站 | 亚洲乱码一卡二卡四卡乱码新区 | 无罩大乳的熟妇正在播放 | 国产在线看片免费视频 | 欧美激情视频一区二区三区不卡 | 一二三在线 | 在线成人国产 | 日本乳喷榨乳奶水视频 | 国产女人叫床高潮大片 | 影音先锋新男人av资源站 | 真实人与人性恔配视频 | 一区二区三区成人久久爱 | 国产在线观看www污污污 | 888亚洲欧美国产va在线播放 | 女同性av片在线观看免费网站 | 欧美亚洲自偷自拍 在线 | japanese国产精品 | 深爱激情五月婷婷 | 国产精品偷伦视频观看免费 | 在线视频一二三区 | 国产熟妇另类久久久久久 | av再线| 天堂中文在线www天堂在线 | 国产精品成人观看视频国产奇米 | 天堂av资源 | 校园春色欧美激情 | 日韩一区二区三区福利视频 | 久久综合操 | 91看毛片| 亚洲综合免费视频 | 国产综合欧美 | 四虎影视国产精品免费久久 | av一级在线观看 | 人人妻人人澡人人爽久久av | 亚洲欧美日韩在线看 | 中文字幕+乱码+中文字幕一区 | 日本人与黑人做爰视频 | 亚洲乱码一卡二卡四卡乱码新区 | 久久久香蕉 | 好男人好资源在线观看免费视频 | 超碰天天| 91国在线啪 | 婷婷综合久久中文字幕 | 欧美色图p | 国产亚洲欧美日韩在线观看一区 | 六十熟妇乱子伦视频 | 美日韩中文字幕 | 国产又黄又爽无遮挡不要vip | 337p日本欧洲亚洲大胆张筱雨 | 成在线人av免费无码高潮喷水 | 国产精品高潮呻吟av久久男男 | 免费午夜视频 | 免费人成视频在线观看不卡 | 噜噜噜久久亚洲精品国产品麻豆 | 正在播放国产一区 | 免费播放婬乱男女婬视频国产 | 色视频免费 | 亚洲日本综合 | 精品久久久无码中文字幕边打电话 | 韩国黄色av | 亚洲蜜芽在线精品一区 | 日本艳妓bbw高潮一19 | 久久日精品 | 九九热精彩视频 | 日本三线免费视频观看 | av观看网址 | 欧美视频在线免费播放 | 深夜福利看片 | 日韩精品一区二区三区在线播放 | 欧美 亚洲 国产 制服 中文 | 五月久久久综合一区二区小说 | www.蜜臀.com| 中文幕无线码中文字蜜桃 | 一级黄色欧美 | 国内精品久久久久久久影视 | 男女一进一出超猛烈的视频不遮挡在线观看 | av鲁丝一区鲁丝二区鲁丝三区 | 精品国产一区二区三区蜜殿 | 久久九九影院 | 极品瑜伽少妇hd | 欧美理伦在线观看 | 看免费真人视频网站 | 奇米影视奇奇米色狠狠色777 | 国产日韩亚洲大尺度高清 | 国产欧美日韩综合 | 97国产精品视频 | 女人被做到高潮视频 | 日韩精品一区二区在线视频 | 日本黄色二区 | 免费无码午夜福利片 | 91官网入口| 亚洲精品一区二区三 | 日本免费一二区 | 亚洲午夜精品视频 | 男插女av | 亚洲精品国偷拍自产在线 | 国产精品午夜福利麻豆 | 国产精品兄妹在线观看麻豆 | 久久人妻少妇嫩草av无码专区 | h动漫无遮挡成本人h视频 | 男女无遮挡毛片视频免费 | 亚洲精品无码ma在线观看 | 亚洲偷自拍另类图片二区 | 日本少妇做爰大尺裸体网站 | 国产日韩欧美在线观看 | 精品久久久久久久久久久院品网 | 台湾乡村少妇伦理 | 日本在线观看网站 | 亚洲在线视频免费 | 黄网站欧美内射 | 91精品欧美 | 久久人人爽人人 | 福利在线不卡 | 免费观看黄频视 | 一本到无码av专区无码 | 久久乐国产精品 | 亚洲精品国产乱码av在线观看 | 男女裸体做爰猛烈全过程免费视频 | 好男人社区www在线观看 | xnxx女第一次 | 五月激情日韩欧美啪啪婷婷 | 综合亚洲桃色第一影院 | 亚洲精品日本久久一区二区三区 | 国产农村毛卡片 | 51国产偷自视频区视频 | 亚洲成av人片在线观看无码不卡 | 韩国三级hd中文字幕 | 久久久久久久久久久久网站 | 国产色吧| 综合网在线视频 | 国内精品乱码卡一卡2卡麻豆 | 国产爽爽爽 | 婷婷色中文字幕综合在线 | 日韩高清在线观看永久 | 在线涩涩免费观看国产精品 | 日日碰狠狠添天天爽超碰97 | aa久久| 真人床震高潮全部视频免费 | 在线视频 亚太 国产 欧美 一区二区 | 精品乱| 精品人妻大屁股白浆无码 | 国产免费黄视频 | 中文字幕片 | 99久久精品费精品国产一区二 | 国内自拍偷拍第一页 | 两个人日本www免费版 | 亚洲一区二区三区在线播放无码 | 久久99在线 | 国产色啪| 99re6热在线精品视频播放 | 熟睡人妻被讨厌的公侵犯深田咏美 | 国产精品成熟老妇女 | 亚洲国产精品日韩av专区 | 国产特黄aaa大片免费观看 | 色就是色网站 | 乱码精品一区二区三区 | 精品国产18久久久久久 | 欧美视频精品免费覌看 | 亚洲а∨天堂久久精品 | 国产偷抇久久精品a片69 | 色偷偷色偷偷色偷偷在线视频 | 日本天堂网站 | 天天国产视频 | 免费理伦片在线播放网站 | 自拍偷拍21p | 亚洲 校园 春色.自拍 | 人妻互换 综合 | 久久棈精品久久久久久噜噜 | 无码专区无码专区视频网站 | 久久久久国产精品嫩草影院 | 色姑娘啪啪 | 久久久精品午夜免费不卡 | 99热门精品一区二区三区无码 | 91羞羞网站| 国产av亚洲精品ai换脸电影 | 91精品国产综合久久婷婷香蕉 | av片免费 | 久久夜色精品国产www红杏 | 国产激情福利 | 亚洲国产精品久久久久网站 | 黄色大片av | 伊人青青操 | 中国少妇内射xxxhd免费 | 日日噜噜夜夜爽 | wwwxx欧美| 最新国产成人ab网站 | 单亲与子性伦刺激对白播放的优点 | 欧美精品网 | 国产精品亚洲二区在线看 | 香港三级午夜理伦三级 | 欧美最猛性xxxxx大叫 | 国产小视频网址 | 日本女人高潮视频 | 国产精品网址 | 日日夜夜撸视频 | 日韩免费无码成人久久久久久片 | 欧美激情综合 | 国产96av在线播放视频 | 无码人妻少妇精品无码专区漫画 | 网站毛片| 久久久999精品 | 亚洲综合av色婷婷国产野外 | 香蕉视频在线免费 | 三级网址在线 | 三级黄网站 | 黄网在线播放 | 免费人成网站在线视频 | 又大又爽又黄无码a片 | 日韩黄页在线观看 | 三级a三级三级三级a十八发禁止 | 人妖天堂狠狠ts人妖天堂狠狠 | 亚洲精品一区久久久久久 | 亚洲精品久久久久国产剧8 日韩欧美一区二区三区不学 | 天堂av资源在线观看 | 亚洲精品偷拍无码不卡av | 午夜在线免费观看视频 | 久久久久五月天 | 免费无遮挡无码永久视频 | 亚洲第一免费播放区 | 欧美一区二区三区视频 | 国产寡妇精品久久久久久 | 免费无码一区二区三区a片 久久精品道一区二区三区 26uuu另类亚洲欧美日本 | 67194熟妇在线直接进入 | 成人网站国产在线视频内射视频 | 成人在线观看日韩 | 久久艹中文字幕 | 亚洲欧美乱日韩乱国产 | 黄色成人一级片 | 女同性久久产国女同久久98 | 国产色99 | www.亚洲视频 | 国产成人在线视频网站 | 亚洲国内自拍 | 久久国产天堂福利天堂 | 国产乱码1卡二卡3卡四卡5 | 亚洲天堂视频在线播放 | 色又黄又爽18禁免费网站现观看 | 新版本天堂资源在线中文8的特点 | 国产剧情福利av一区二区 | 久99久精品免费视频热 | 欧美丰满大乳大屁股流白浆 | 亚洲午夜成人精品无码色欲 | 日韩欧美高清一区 | avav国产 | 日本久久精品一区二区三区 | 久久中文一区二区 | 99精品视频播放 | 国产精品自拍合集 | 亚洲精品乱码一区二区三区 | 国产欧美激情日韩成人三区 | 亚洲综合天堂 | 新亚洲天堂 | 欧美高清一区三区在线专区 | 午夜福利午夜福利1000 | 国产艹逼视频 | 国产亚洲精品aaaa片app | 国产亚洲精品久久情网 | 国产深夜福利在线 | 18禁成人网站免费观看 | 少妇综合网 | 美女视频网站久久 | zzijzzij亚洲成熟少妇 | 99久久国产亚洲高清观看 | 日本一道人妻无码一区在线 | 亚洲五月丁香综合视频 | 天天狠天天天天透在线 | 91欧美精品午夜性色福利在线 | 国产美女特级嫩嫩嫩bbb片 | 久久综合狠狠综合久久 | 麻豆tv入口在线看 | 精品99久久久久久 | 欧美成人精品一区二区男人小说 | 色综合天天无码网站 | 青青草手机视频 | 国产一区二区三区免费看 | 伊人77| 亚洲精品乱码久久久久久日本蜜臀 | 欧美饥渴熟妇高潮喷水水 | 蜜桃av抽搐高潮一区二区 | 久久亚洲精品无码va大香大香 | 网禁国产you女网站 91美女图片黄在线观看 | 久久亚洲春色中文字幕久久久 | 青青草成人免费视频 | 精品一区二区三区无码免费直播 | 日本香港三级亚洲三级 | 日产无码中文字幕av | 亚洲日韩一区二区一无码 | 综合精品欧美日韩国产在线 | 波多野结衣免费一区视频 | 97精品依人久久久大香线蕉97 | 中文字幕在线一 | 午夜精品三级久久久有码 | 区二区三区在线 | 欧洲 | 中文字幕第3页 | 国产成人无遮挡免费视频 | 色av中文字幕 | 精品国产91 | 国产亚洲精品久久久久久牛牛 | 4438xx亚洲最大五色丁香一 | 三级黄色在线视频 | 日韩欧美一区二区在线 | 久久久久久久黄色 | 黄色在线免费播放 | 国产在线观看www鲁啊鲁免费 | 手机在线亚洲 | 好大好硬好爽免费视频 | 教师夫妇交换刺激做爰小说 | 久久久久久久综合色一本 | 青青草视频在线免费播放 | 亚洲国产综合精品2020 | 夜精品一区二区无码a片 | 无码人妻精品一区二区三区久久久 | 国产在线日韩拍揄自揄视频 | 国产成人精品视频一区二区三 | 精品国产性色无码av网站 | 国产91成人在在线播放 | 99久久婷婷国产综合精品青牛牛 | 一区二区三区乱码在线 | 中文 | 亚洲色大成网站www久久九九 | 亚洲欧美在线看 | 午夜精品久久久久久久99热 | 欧美手机在线观看 | av在线成人| 亚洲午夜高清国产拍 | 久久人人爽av亚洲精品天堂 | 精品裸体舞一区二区三区 | 国产成人精品无码免费看夜聊软件 | 摸丰满大乳奶水www免费 | 无线乱码一二三区免费看 | 国产xvideos免费视频播放 | 中文字幕人成乱码熟女 | 欧美亚洲成人网 | 天堂资源中文 | 国产精品美女一区 | 在线观看国产成人swag | 婷婷色爱区综合五月激情韩国 | 日韩视频高清 | 午夜神马影院dy888亚洲精品 | vr成人啪啪影视 | 成人免费视频国产免费 | aaa国产视频| 国产成人剧情av | 欧美日韩精品网站 | mm1313亚洲国产精品无码试看 | 丰满少妇猛烈进入三区视频 | 天天摸日日添狠狠添婷婷 | 草久视频 | 丰满岳跪趴高撅肥臀尤物在线观看 | 亚洲人视频在线 | 男同又粗又大又好爽 小说 女人裸体夜夜爽快 | 中文字幕乱码一区二区三区 | 中文字幕亚洲码在线 | 国产色视频一区二区三区qq号 | 久久精品视频免费观看 | av无码人妻中文字幕 | 国产三级视频在线播放线观看 | 亚洲www在线 | 老女人裸体淫交 | 天天插日日插 | 日韩三级视频在线 | 真人啪啪高潮喷水呻吟无遮挡 | 国内精品伊人久久久影视 | 综合亚洲另类欧美久久成人精品 | 中文字幕爆乳julia女教师 | 中文字幕在线免费观看 | 成人性色生活片 | 美女末成年视频黄是免费网址 | 无码一区二区三区久久精品 | 精品欧美h无遮挡在线看中文 | 伊人久久大香线蕉精品 | 在线精品亚洲欧美日韩国产 | 三级成年网站在线观看级爱网 | 免费无码黄十八禁网站在线观看 | 少妇疯狂做受xxxx高潮台湾 | 国产精品ww| 日本福利小视频 | 青青草视频网站 | 乱操视频| 日韩精品二区在线观看 | 在线视频欧美亚洲 | 亚洲第一综合色 | 亚洲你懂得| 国产色在线 | 日韩 岛国一区二区三区 | 成人永久视频 | 欧美日韩国产精品爽爽 | 色婷婷综合久色aⅴ五区最新 | 国产精品无码素人福利不卡 | 爱做久久久久久 | а√天堂ww天堂八 | 97丨九色丨国产人妻熟女 | 欧洲亚洲色一区二区色99 | 亚洲国产欧美在线人成人 | 999精品视频在线 | 特级小箩利无码毛片 | 黄色国产一级片 | 国产精品99久久久久久人免费 | 日本老熟妇乱子伦视频 | 亚洲成aⅴ人在线电影 | 在线va亚洲va天堂中文字幕 | 国产日产欧产精品精乱了派 | 国产无遮挡又爽又黄的视频 | 亚洲精品国产a久久久久久 亚洲精品国产av成拍色拍 | 色一区二区 | 3atv精品不卡视频 | 亚洲人成电影网站色www | 后入内射欧美99二区视频 | 永久免费a级在线视频 | 加勒比色老久久爱综合网 | 久久精品国产免费观看三人同眠 | 自拍毛片 | 粉嫩久久99精品久久久久久夜 | 亚洲精品综合网在线8050影院 | 三级视频网址 | 中文字幕欧美亚洲 | 噜噜噜狠狠夜夜躁精品仙踩林 | 亚洲第一页中文字幕 | 亚洲制服丝袜第一页 | 亚洲精品无码成人片久久不卡 | 日韩欧美人妻一区二区三区 | xxx亚洲日本| 天天爽夜夜爽人人爽曰av | 高潮久久久久久久久 | 99久久免费精品高清特色大片 | 国产又色又爽又刺激在线观看 | 中文字字幕在线中文乱码 | 国产麻豆精东天美果冻传媒小蝌蚪 | 538精品视频在线观看 | 极品美女高潮呻吟国产剧情 | 中文永久有效幕中文永久 | 黄在线免费 | 亚洲视频在线观看 | 91av欧美 | 亚洲狠| 综合视频在线观看 | 少妇人妻无码专区视频免费 | 国产成人一区二区三区 | 91免费国产在线观看 | 中文字幕亚洲综合久久菠萝蜜 | 成人黄色大片免费看 | 国产区亚洲一区在线观看 | 四虎最新网址在线观看 | 国产呦交精品免费视频 | 国产伦精品一区二区三区视频金莲 | 国内自产少妇自拍区免费 | 国产精品网友自拍 | 麻豆视传媒官网免费观看 | 亚洲麻豆一区二区三区 | 国产亚洲欧美日韩二三线 | 天干夜天天夜天干天 | 日日碰久久躁77777 | 国产日韩亚洲大尺度高清 | 日韩干干干 | se333se亚洲精品 | 日韩视频精品在线 | 又大又黄又粗高潮免费 | 国产亚洲情侣一区二区无 | 蜜臀99久久精品久久久久久软件 | 夜夜爱网站 | 国产91精品看黄网站在线观看动漫 | 少妇下面好紧好多水真爽播放 | 色爱亚洲| 日韩欧美一级大片 | 国产又黄又刺激又高潮的网站 | 天天射天天草 | 日日日操操操 | www狠狠干| 亚洲精品ww久久久久久p站 | 韩日黄色毛片 | 中文字幕在线观看视频www | 97欧美视频| 亚洲9区 | 日产精品卡二卡三卡四卡乱码视频 | 成人特级片 | 天堂网wwww | 麻豆国产91在线播放 | 国产精品高潮呻吟三区四区 | 亚洲欧美在线观看视频 | 日韩精品亚洲人旧成在线 | 亚洲一区二区三区四区五区高 | 变态另类久久变态变态 | 黑巨人与欧美精品一区 | 欧美成人无尺码免费视频软件 | 国产在线国偷精品免费看 | 丰满女邻居的嫩苞张开视频 | 久久精品一区二区三区中文字幕 | 色女人天堂| 九九涩| 中文字幕av免费专区 | 日本高清中文字幕在线观线视频 | 国产欧精精久久久久久久 | av天天射 | www.youjizz日本 | 欧美日韩中文在线字幕视频 | 日本一区二区三区免费看 | 好男人在线社区www资源 | 欧美综合区自拍亚洲综合图 | 久久伊人精品青青草原vr | 黑人操欧美人 | 日本美女高潮 | jzz国产| 国产乱人伦精品一区二区 | 国产同性女女互磨在线播放 | 亚洲成αv人片在线观看 | 日韩免费影视 | 午夜精品亚洲 | 97无码视频在线看视频 | 99福利资源久久福利资源 | 久久精品九九 | 日本一级在线观看 | 男女精品网站 | 成人免费crm一区二区 | av伦理在线 | 亚洲精品国精品久久99热 | 成人免费视频一区二区 | 福利视频你懂的 | 国产刺激出水片 | 国产免费a∨片同性同志 | 天堂aⅴ无码一区二区三区 好屌草这里只有精品 | 午夜爽爽爽男女免费观看一区二区 | 日本波多野结衣在线 | 欧美极品一区 | 日韩视频免费观看高清 | 丰满人妻妇伦又伦精品国产 | 亚洲成人在线网址 | 一区二区狠狠色丁香久久婷婷 | 亚洲精品日韩精品 | 亚洲精品国产一区二区三 | 国产精品成人嫩草影院 | 四虎影院网| 亚洲日韩av一区二区三区中文 | 六月丁香五月激情综合 | 99久久国产综合精品尤物酒店 | 久久久久久免费精品 | 三级做a全过程在线观看 | 2021精品亚洲中文字幕 | 久久激情综合狠狠爱五月 | 少妇挑战三个黑人惨叫4p国语 | 午夜无码一区二区三区在线 | 欧美精品999 | a片免费视频在线观看 | 久久大香香蕉国产拍国 | 国产乱人偷精品视频 | 开心激情亚洲 | 爱爱爱爱视频 | 精品视频在线免费看 | 一区二区三区四区在线不卡高清 | 色久悠悠婷婷综合在线亚洲 | 亚洲中文在线播放一区 | 日产欧产va高清 | 人人做人人爽久久久精品 | 7777久久亚洲中文字幕蜜桃 | 亚洲成色www.777999 | 日韩欧美亚洲综合久久 | 北条麻妃一区二区三区在线 | 我要色综合网 | 久久人人爽人人爽人人片av超碰 | 国产91aaa| 国产偷抇久久精品a片69 | 欧美一级特黄aaaaaa在线看片 | 欧美做受高潮中文字幕 | 天天做天天爱天天要天天 | 野花香社区在线观看 | 毛片黄色视频 | 亚洲精品国产品国语在线app | 欧美国产精品一区二区三区 | 日韩伦人妻无码 | a片在线免费观看 | 欧美精品一区在线观看 | 91一区 | 国产福利精品视频 | 欧美有码视频 | av狠狠色超碰丁香婷婷综合久久 | 91av免费观看 | 三级欧美日韩 | 日韩欧美国产一区二区三区 | 国产亚洲欧美日韩俺去了 | 欧美两根一起进3p做受视频 | 高清破外女出血av毛片 | 最新的国产成人精品2021 | 乌克兰美女浓毛bbw 暖暖 免费 高清 日本 在线 | 久久婷婷热 | 国产a∨国片精品青草视频 亚州欧美 | 无码av高潮喷水无码专区线 | 亚洲精品国产二区图片欧美 | 亚洲 自拍 欧美 日韩 丝袜 | 久艾草久久综合精品无码 | 国产亚洲美女精品久久久2020 | 国产无遮挡又黄又爽网站 | 国产精品自产拍在线观看免费 | 无码少妇精品一区二区免费动态 | a√天堂资源 | 欧洲人妻丰满av无码久久不卡 | 国产美女被遭强高潮免费网站 | 亚洲欧美日本一区二区三区 | 伊人影音| 久久人人97超碰国产精品 | 免费能看的黄色片 | 亚洲一区自拍高清亚洲精品 | 日本三级小视频 | 国产zzjjzzjj视频全免费 | 99涩涩 | 中文字幕在线观看免费视频 | 一本一道av无码中文字幕麻豆 | 日本男人天堂 | jav久久亚洲欧美精品 | 亚洲欧美精品无码一区二区三区 | 999久久久免费精品国产 | 超碰九九 | 婷婷国产v亚洲v欧美久久 | 日韩欧美手机在线 | 久久久久久日产精品 | 国产东北露脸熟妇 | 秋霞午夜一区二区三区黄瓜视频 | 2020国产精品久久精品 | 伊人依成久久人综合网 | 日韩色| 黄色三级片毛片 | 四虎永久在线精品国产免费 | 丝袜 亚洲 另类 欧美 | www.一区二区三区在线 | 欧洲 | av天堂午夜精品一区 | 日本韩国在线播放 | 国产一级淫片a直接免费看 男人天堂aaa | 永久免费观看的毛片手机视频 | 成人高潮视频在线观看 | 在线 国产 欧美 亚洲 天堂 | 91精品国产爱久久丝袜脚 | 99re久久精品国产首页 | 粉嫩av一区二区三区在线播放 | 日日噜噜夜夜狠狠视频无码日韩 | 欧美偷拍一区二区三区 | 玖玖成人| 精品国产一区二区三区av孞弋 | 欧美一级黄色录像 | 亚洲色欧美色2019在线 | 国产二区视频在线观看 | 亚洲 小说区 图片区 | 蜜臀久久99精品久久久久久宅男 | 日韩av无码一区二区三区不卡 | 亚洲欧美乱综合图片区小说区 | 亚洲 自拍 欧美 小说 综合 | 按摩师他揉我奶好爽捏我奶视频 | 色丁香影院 | 国产精品视频网 | 日韩激情第一页 | 国产99在线 | 中文 | 狠狠插狠狠操 | 九九精品无码专区免费 | 国产真实夫妇交换视频 | 人妻系列无码专区av在线 | 夜夜躁狠狠躁日日躁2022 | 日本少妇浓毛bbwbbw | 成人午夜福利免费无码视频 | 国产av一区最新精品 | 粗大的内捧猛烈进出少妇视频 | 亚洲毛片在线观看 | 午夜美女久久久久爽久久 | 开心激情深爱 | 免费无码不卡中文字幕在线 | 欧美人狂配大交3d | 国产精品交换 | 基地毛片 | 国产精品热久久无码av | 国产成人高清成人av片在线看 | 国产精品人妻久久久久 | 国内精品久久人妻互换 | 美国人性欧美xxxx | 欧美日韩在线亚洲二区综二 | 一个人看的免费高清www视频 | 欧美精品影视 | a天堂中文字幕 | 偷自拍亚洲视频在线观看99 | 亚洲人成网站18禁止中文字幕 | www.色播| 国产偷抇久久精品a片69麻豆 | www.超碰在线观看 | 果冻传媒色av国产在线播放 | 国产丝袜一区视频在线观看 | 真实乱视频国产免费观看 | 国产乱人伦偷精品视频 | 国产精品丝袜www爽爽爽 | 麻豆91精品91久久久的内涵 | 182tv午夜福利在线地址二 | 首页 国产 亚洲 丝袜图片区 | 亚洲熟妇无码乱子av电影 | 国产交换配乱淫视频a | 99精品欧美一区二区 | av一道| 亚洲性无码av中文字幕 | 青青草免费视频在线播放 | 国产成人a人亚洲精品无码 伊人99在线 | 蜜桃臀无码内射一区二区三区 | 婷婷激情久久 | 午夜久久久久久久久久久久久捆绑 | 国产激情亚洲 | 色综合久久久无码中文字幕波多 | 资源天堂 | 在线天堂www天堂资源在线 | 黄又色又污又爽又高潮动态图 | 亚洲综合日韩精品欧美综合区 | 夜夜澡人摸人人添人人看 | 亚洲a∨国产高清av手机在线 | 青青草超碰 | 性视频免费的视频大全2015年 | 无码精品久久一区二区三区 | 先锋资源av在线 | 成人一区二区三区久久精品嫩草 | 一区二区成人在线 | 国产精品爽爽va在线观看网站 | 亚洲影院在线播放 | 嫩草影院中文字幕 | 辟里啪啦国语版免费观看 | 欧美黄色影院 | 国产精品99久久久久久白浆小说 | 亚洲444kkkk在线观看 | 午夜成人1000部免费视频 | 成人福利国产午夜av免费不卡在线 | 久久99av无色码人妻蜜柚 | 5566亚洲精华国产精华精华液 | 桃色综合网 | 大胸少妇裸体无遮挡啪啪 | 97精品国产一区二区三区四区 | 日日夜夜精品免费观看 | www.伊人网| 韩国中文字幕在线观看 | 中文字幕视频免费观看 | 黄色在线观看免费视频 | 亚洲成人资源 | 波多野结衣乳巨码无在线 | 青青视频免费观看 | 亚洲自拍成人 | 午夜福利无码一区二区 | 不卡视频一区二区 | 456成人精品影院 | 日本丰满熟妇毛茸茸xxx | 少妇久久久久久 | 国产网友愉拍精品视频手机 | 九九免费精品视频 | 国产在线孕妇孕交 | 久久精品国产自清天天线 | 国产丝袜一区二区在线 | 亚洲的vs日本的vs韩国 | 国产a∨国片精品青草视频 亚州欧美 | 古代黄色片 | 99国精产品一二三区 | 欧美日韩午夜群交多人轮换 | 激情五月色综合国产精品小说 | 精品国产乱码久久久久久108 | 欧美激情亚洲综合 | 精品黑人一区二区三区 | 亚洲中文欧美在线视频 | 亚洲乱码卡一卡二卡新区豆 | 99久久久无码国产精品不卡 | 亚洲高清成人aⅴ片 | 亚洲人成77777在线播放网站 | 午夜福利无遮挡十八禁视频 | 免费人成在线观看网站 | 北条麻妃av在线 | 国产一区二区av在线 | 天天色综合1 | 国产美女色诱视频又又酱 | 亚洲精品美女网站 | 国产色综合久久无码有码 | 亚洲精品人成网线在播放va | bdsm欧美另类折磨 | 亚洲人视频在线观看 | 午夜拍拍视频 | 四虎免费av | 日韩欧美日韩 | 亚洲午夜av久久久精品影院色戒 | 草草影院精品一区二区三区 | 亚洲免费鲁丝片 | 国产亚洲精品久久久久久无挡照片 | 成人做爰www免费看视频网战 | 日韩人妻无码精品二专区 | 国产黑色丝袜呻吟在线91 | 精品国产av一区二区果冻传媒 | 一区二区在线视频 | 久久综合亚洲鲁鲁九月天 | 亚洲综合区 | 精品久久久久久亚洲综合网 | 99视频在线 | 国产亚洲精品久久久久动 | 韩国精品在线观看 | 一区二区三区av | 法国啄木乌av片在线播放 | 免费在线播放黄色 | 五月婷婷丁香花 | 99av精品孕妇在线 | 91亚洲网| 2020最新国产高清毛片 | 99久久精品免费看国产 | 色偷偷人人澡人人爽人人模 | 午夜影院操 | 亚欧洲精品| 日本精品久久久久久久 | 大肉大捧一进一出好爽视频动漫 | 四虎国产精品免费永久在线 | 欧洲精品久久 | av激情亚洲男人的天堂 | 天天综合日日夜夜 | 亚洲综合网在线观看 | 超碰在线中文 | а√天堂资源8在线官网 | 男人网站在线观看 | 中文字幕无码免费久久99 | 国产色产综合色产在线视频 | 忘忧草社区在线播放日本韩国 | 国产一区二区精品在线 | 国产三级香港三韩国三级 | 亚洲色大成网站久久久 | 麻豆一区二区在我观看 | 人妻少妇精品无码专区二区 | 露脸国产精品自产拍在线观看 | 国产乱xxxxx978国语对白 | 日韩美女在线观看一区 | 999久久久 | 天天看天天操 | 成人无码免费视频在线播 | 精品亚洲国产成人蜜臀优播av | 亚洲国产精品久久精品成人网站 | 亚洲成年人 | av大尺度一区二区三区 | 国产狂喷水潮免费网站www | 正在播放国产老头老太色公园 | 午夜福利一区二区三区高清视频 | 不卡中文字幕 | 秒拍视频福利 | 亚洲综合无码日韩国产加勒比 | 综合天天色| 天天干夜夜撸 | 鲁丝片一区二区三区免费 | 免费色片网站 | 亚洲综合色丁香婷婷六月图片 | 国产日批视频 | 国产成人欧美日本在线观看 | 麻豆中字一区二区md | 久一精品视频 | 国产精选bt天堂 | fc2性色av久久精品 | 97人人干| 国产美女自慰在线观看 | 在线视频免费播放 | 久久免费的精品国产v∧ | 丁香六月综合激情 | 超碰操操操 | 在线观看日本网站 | 天天干天天操天天拍 | 男人添女人囗交做爰的技巧 | 久久精品欧美一区二区三区麻豆 | 国产精品 欧美日韩 | 久久97超碰人人澡人人爱 | 免费三级大片 | 亚洲天堂免费av | 三级三级久久三级久久 | 国产毛片18片毛一级特黄 | 97久久精品无码一区二区天美 | 中文字幕在线免费观看视频 | 131mm少妇做爰视频 | 亚洲一区二区色一琪琪 | 麻婆豆传媒一区二区三区 | 成人无码潮喷在线观看 | a欧美爰片久久毛片a片 | 中文字幕蜜臀 | 麻豆精品久久久久久久99蜜桃 | jizz黑人与白人交 | 国产丰满乱子伦无码专 | 手机在线看片国产 | 曰韩精品无码一区二区三区视频 | 国产精品久久免费观看spa | 午夜影院在线观看视频 | 免费福利在线视频 | 午夜影视在线观看 | 日本一区二区在线免费观看 | 午夜天堂一区人妻 | 国产成人av免费网址 | 亚洲va在线va天堂xxxx中文 | 午夜神马久久 | 麻花传媒mv一二三区别在哪里看 | 国产福利萌白酱精品一区 | 又色又爽又黄的视频国内 | 少妇网站在线观看 | 久久草在线视频 | 丝袜精品 欧美 亚洲 自拍 | 色.www| 欧美艳星nikki激情办公室 | 一二三四观看视频社区在线 | 无码va在线观看 | 国色综合 | 少妇又紧又深又湿又爽视频 | 亚洲国产成人熟透妇女 | 亚洲人成免费在线观看 | 91精品久久久久 | 亚洲区小说区图片区qvod | 亚洲人成小说网站色在线观看 | 国产成人午夜精品影院 | 久久亚洲精品成人无码网站夜色 | 伊人久久综合影院 | 亚洲a级片| 色av网址| 最近日韩免费视频 | 国外国内精品国产成人国产三级 | 性做久久久久久免费观看欧美 | 3d动漫精品啪啪一区二区 | 国产一区二区三区成人欧美日韩在线观看 | 亚洲无av在线中文字幕 | 日韩尤物 | 噜噜噜狠狠夜夜躁精品仙踪林 | 少妇太爽了在线观看视频 | 美女少妇翘臀啪啪呻吟网站 | 久久人妻无码aⅴ毛片a片直播 | 偷偷操不一样的99 | 丁香久久婷婷 | 十八禁毛片| 果冻传媒一区 | 妇欲性难耐bd在线观看 | 国内精品久久久久久久影视红豆 | 捏胸吃奶吻胸免费视频大软件 | 麻花豆传媒剧国产免费mv入口 | 成人试看30分钟免费视频 | 一本一本久久aa综合精品 | 黄色一级片子 | 青青操在线播放 | 国产美女自慰在线观看 | 伊人久久大香线 | 中文字幕h | 成人在线看片 | 精品久| 久久精品中文 | 丰满熟妇人妻av无码区 | 亚洲精品久久久久久久月慰 | 日日摸夜夜添夜夜添国产2020 | 国产精品第69页 | 成人av鲁丝片一区二区小说 | 国产精品99久久久久久白浆小说 | 亚洲午夜精品a片久久www解说 | 精品少妇人妻av一区二区 | 五十路亲子中出在线观看 | 麻豆国产成人av在线播放欲色 | 无码人妻精品一区二区三区9厂 | 亚洲va欧美va国产综合剧情 | 国产精品黑色丝袜高跟鞋 | 欧美伦费免费全部午夜最新 | 亚色一区| 性乌克兰xxxx极品 | 搡少妇在线视频少妇干活了 | 天堂中文在线官网 | 开心色婷婷色五月激情 | 国产天天骚 | 日本在线影院 | 亚洲精品国产综合99久久夜夜嗨 | 成人免费无遮挡在线播放 | 打屁股日本xxxxx变态 | 在线播放五十路熟妇 | 亚洲国产精品无码aaa片 | 国产伊人久久 | 极品少妇扒开粉嫩小泬视频 | 久久久久久黄 | 九九久久免费视频 | 国产片自拍 | 男人女人午夜视频免费 | 亚洲国产精品成人综合色 | 少妇爆乳无码av无码专区 | 亚洲aⅴ天堂av天堂无码 | 精品一区二区三区在线播放 | 丰满的少妇xxxxx人 | 国产精品免费久久久久影院仙踪林 | 少妇av一区二区三区 | 国产亚洲欧美日韩在线观看一区 | bbw在线观看 | 日韩精品无码区免费专区 | 91精品视频免费观看 | 久久成人久久爱 | 国产成人av免费网址 | 国产精品国产亚洲精品看不卡 | 国产精品久久久久9999小说 | 这里有精品视频 | 中国黄色一级毛片 | 午夜黄色小说 | 永久免费精品成人网站 | 91九色精品女同系列 | 天堂福利 | 国内免费久久久久久久久 | 又大又黄又粗高潮免费 | 日韩一区三区 | 亚洲精品国产av现线 | 亚洲第一av无码专区 | 天天干,夜夜爽 | 一本色道久久综合狠狠躁篇怎么玩 | 亚洲图片综合图区20p | 91最新在线视频 | 肥熟一91porny丨九色丨 | 欧美激情一区二区在线 | 久久精品视频在线播放 | 动漫人妻h无码中文字幕 | 日本久久久网站 | x99av成人免费 | 2019一級特黃色毛片免費看 | 国产一二区在线观看 | 五月婷影院 | 99视频免费观看 | 亚洲福利国产 | 丝袜熟女国偷自产中文字幕亚洲 | 四虎永久在线精品视频 | 99极品视频 | 国产精品欧美久久久久无广告 | 国产精品国产亚洲区艳妇糸列短篇 | 黄色a一级片 | 欧美精品亚洲精品日韩专区一乛方 | 国产丶欧美丶日本不卡视频 | 精品永久 | 国产成人高清精品亚洲 | 亚洲国产一区二区三区在观看 | 国产太嫩了在线观看 | 无码专区—va亚洲v专区 | 无码免费v片在线观看 | 欧美激情一区二区 | 天天综合影院 | 老司机久久99久久精品播放免费 | 超清纯白嫩大学生无码网站 | 久久精品中文字幕免费 | 免费的黄色的视频 | 人人草视频在线观看 | 99碰碰| 一区二区欧美视频 | 亚洲精品伊人久久久大香 | 国产麻豆精品sm调教视频网站 | 国产精品白浆无码流出 | 国产欧美综合一区 | 女同性精品亚洲 | 亚洲精品国产乱码av在线观看 | 午夜精品999 | 中文字幕永久有效 | 国产精品偷伦视频免费手机播放 | 午夜福利电影网站鲁片大全 | 国产伦精品一区二区三区免.费 | 国产最爽的乱淫视频国语对白1 | 天天干夜夜做 | 亚洲啪啪网 | 日产中文字幕一码 | 五月婷婷开心中文字幕 | 久久久久久久久久久久网站 | 国产精品毛片av在线看 | 亚洲精品成人在线 | 亚洲黄色自拍视频 | 中文字幕av无码专区第一页 | 国产精品亚洲二区在线看 | 日本三级在线播放线观看视频 | 少妇人妻偷人精品无码视频 | 国产91色| 欧美激情精品成人一区 | 国产精品毛多多水多 | tickle调教美女丨vk | 成人福利视频在线观看 | 国产午夜福利在线播放87 | 亚洲中文字幕永久在线全国 | 日韩av男人天堂 | 日日夜夜综合 | 天天看夜夜 | 成人毛片在线观看 | 成·人免费午夜视频 | 天堂v视频 | 久久99亚洲精品久久频 | 日韩欧美一区二区三区四区五区 | 色人阁小说 | 亚洲精品欧美精品日韩精品 | 日本欧美一级 | 国产成人亚洲综合青青 | 亚洲中文无码av永久 | www.青青 | 亚洲欧美色图视频 | 亚洲伊人久久综合影院 | 夜夜操天天射 | 欧美另类 自拍 亚洲 图区 | 国产怡红院在线观看 | 国产一区二区三区视频在线观看 | 国产色无码精品视频国产 | 隔壁老王国产在线精品 | 国产成人av亚洲一区二区 | 超清中文乱码字幕在线观看 | 中文久久乱码一区二区 | 亚洲乱码国产乱码精品精大量 | 欧美不卡视频一区发布 | 精品一区二区三区波多野结衣 | 强侵犯の奶水授乳羞羞漫虐 | 欧美成人video | 亚洲国产精品无码中文字 | 999偷拍精品视频 | 黄色成人一级片 | 久热亚洲 | 国产又黄又爽动漫 | 超鹏在线视频 | 特级a毛片| 欧美在线激情 | 国产高清狼人香蕉在线 | 久久偷看各类wc女厕嘘嘘 | 久久精品视频在线看15 | 国产女人叫床高潮大片 | 色悠久久久久久久综合 | 亚洲制服丝袜自拍中文字幕 | 日韩av一卡二卡三卡 | 日本japanese极品少妇 | 黄色好看视频 | 日韩精品第一 | 日本高清毛片中文视频 | 日本xxxbbb | 亚洲成av人片在线观看ww | 亚洲国产精品嫩草影院永久 | 中文字幕人妻无码专区app | 国产成人片无码免费视频软件 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 天天爽夜夜爽人人爽qc | 亚洲精品亚洲人成在线观看麻豆 | 国产aⅴ视频免费观看 | 性开放永久免费视频 | 9九色桋品熟女内射 | 午夜爽爽爽男女免费观看hd | 在线免费观看亚洲 | 北条麻妃久久精品 | 亚洲 欧美 日韩系列 | 免费无遮挡很爽很污很黄的网站 | 韩日激情视频 | 五月婷婷丁香六月 | 精品国产一区二区三区久久久蜜臀 | 日韩色图av | 国产又色又爽又高潮免费 | 性生交大片免费看 | 国产v在线播放 | 久久久无码精品一区二区三区 | 亚洲a免费| 在线看片免费人成视频久网 | 成人性做爰aaa片免费看曹查理 | 亚洲欧美在线不卡 | av在线免费看网站 | 国内精品久久久久久久电影视 | 亚洲伦理在线视频 | 无码被窝影院午夜看片爽爽jk | 五月天激情婷婷婷久久 | 奶真大水真多小荡货av | 亚洲粉嫩高潮的18p 超碰免费公开在线 | 在线青青| 久久福利影视 | 国产国产精品人在线观看 | 色婷婷激情一区二区三区 | 中文字幕第一页在线vr | 在线观看片免费人成视频无码 | 中文字幕日韩精品一区二区三区 | 国内在线一区 | 久久精品一区二区视频 | 男女做性无遮挡免费视频 | 国产精品18久久久久久久网站 | 成人禁污污啪啪入口 | 亚洲a综合一区二区三区 | 动漫精品一区二区 | 欧美性第一页 | 农村女人乱淫免费视频麻豆 | 久久久久久久综合狠狠综合 | 日韩一级二级三级 | 国产亚洲精品一区二三区 | 成人免费毛片色戒 | 国产精品久久久久久人妻 | 青青草无码精品伊人久久 | 波多野结衣电车痴汉 | 少妇人妻无码精品视频app | 艳妇乳肉豪妇荡乳av无码福利 | 性av网站| 亚洲69av| 午夜精品久久久久久久久久久久久蜜桃 | 毛片网站免费 | 亚洲中文无码线在线观看 | 99er在线视频 | 日韩成人精品在线 | av理伦片| 少妇下蹲露大唇无遮挡图片 | 国产在线观看免费视频今夜 | 羞羞视频在线观看 | 亚洲图片欧美色图 | 亚洲欧美日韩国产精品专区 | 亚洲熟妇丰满xxxxx国语 | 欧美国产日韩一区二区三区 | 成人区人妻精品一区二区不卡 | 精品高朝久久久久9999 | av无码精品一区二区三区 | 久热国产视频 | 国产成人精品日本亚洲语音 | 秋霞最新高清无码鲁丝片 | 对白刺激国产子与伦 | 国产视频在线一区 | 尤物福利在线 | 中文字幕人妻丝袜乱一区三区 | 久久综合狠狠综合久久综合88 | 免费无码一区二区三区a片百度 | 国产视频你懂得 | 无码专区—va亚洲v专区 | 人人看人人射 | 亚洲欧美另类日韩 | 爱爱二区 | 爱爱高潮视频 | 欧美美女爱爱视频 | 欧美日韩精品一区二区在线视频 | 欧美人与牲禽动a交精品 | 中文在线日韩 | 色月丁香| 九色综合狠狠综合久久 | 欧美性videos高清精品 | 豆国产95在线 | 亚洲 | 开心激情亚洲 | yy77777丰满少妇影院 | 成人无码一区二区三区 | 成人午夜大片 | 2021无码最新国产在线观看 | 超碰一区 | a在线亚洲高清片成人网 | 午夜鲁鲁| 亚洲一本二卡三卡四卡乱码 | 日韩精品一区二区三区在线观看 | 单亲与子性伦刺激对白播放的优点 | 免费av一区 | 亚洲日本va午夜在线电影 | 久久人人爽人人爽人人av东京热 | 91福利网址 | 中文字幕第九页 | 成人免费毛片内射美女app | 成人欧美激情 | 天天做天天爱天天爽综合网 | 天天做天天爱夜夜爽女人爽 | 大香网伊人久久综合网2018 | 亚洲.欧美.在线视频 | 天天射天天射 | 午夜亚洲国产理论片中文 | 亚洲乱码卡一卡二卡 | 少妇性l交大片7724com | 狠狠噜天天噜日日噜视频麻豆 | 久久綾合久久鬼色88 | 中文字幕在线视频一区二区三区 | 国产一级特黄 | 国产精品一区二区久久国产 | www在线观看国产 | 青青青青国产免费线在线观看 | 国产午夜精品久久久久久 | 亚洲精品久久久久久久观小说 | 亚洲精品无码久久久久app | 国产精品岛国久久久久 | www.超碰在线观看 | 91精品国产综合久久久久久丝袜 | 青青青欧美视频在线观看 | 日韩精品三区 | 日本一级一级一区二tx | 亚洲热久久 | 天堂网2021天堂手机版 | 天天色天天操天天 | 国产偷国产偷亚洲高清日韩 | 亚洲色成人网一二三区 | 日韩欧美高清视频在线观看 | 亚洲欧美日韩另类精品一区 | 日本肉体xxxx裸交 | 亚洲免费网站在线观看 | 亚洲欧美视频一区二区 | 欧美 亚洲 另类 偷偷 自拍 | 亚洲欧美丝袜 动漫专区 | 国产精品主播在线观看 | 欧美性开放视频 | 人乳喂奶hd播放 | 人妻少妇伦在线麻豆m电影 免费无码又爽又刺激软件下载 | 99性视频 | 日韩一级黄色毛片 | 日韩精品成人无码专区免费 | 在线免费看黄色 | 欧洲一区二区在线观看 | 69天堂人成无码免费视频 | 懂色av一区二区三区在线播放 | av最新高清无码专区 | 日本视频在线免费观看 | 青青国产视频 | 亚洲久久在线观看 | 亚洲热妇无码av在线播放 | 国产999久久高清免费观看 | 久久 国产 尿 小便 嘘嘘 | 亚洲国产a∨无码中文777 | www国产亚洲精品久久网站 | 色综合久久久久综合体桃花网 | www.黄色av| 黄页免费在线观看视频 | 国产精品久久久久久久久借妻 | 在线观看欧美黄色 | 日本一大高清免费 | www在线| 亚洲毛片视频 | 交换配乱吟粗大农村大坑性事视频 | 国产精品另类激情久久久免费 | 亚洲成av人片一区二区小说 | 中文天堂资源在线 | 亚洲一区二区av在线观看 | 日本黄xxxxxxxxx100| 亚洲产国偷v产偷自拍网址 懂色av蜜臀av粉嫩av | 亚洲另类激情小说 | 青青青国产成人久久111网站 | 亚洲最新网址 | 另类图片小说 | 国产精品乱码人妻一区二区三区 | 青草伊人久久综在合线亚洲观看 | 丁香五月亚洲综合在线 | 日本久久高清一区二区三区毛片 | 亚洲一区二区三区欧美 | 国产www | 99精品久久久久久中文字幕 | 亚洲精品免费在线 | 懂色av粉嫩av蜜乳av | 午夜影院啊啊啊 | 超碰3 | 又色又爽又高潮免费视频观看 | 性xxxxxxⅹxxxx少妇 | 色欲网天天无码av | 国产成人精品视频ⅴa片软件竹菊 | 亚洲 欧美 日韩 国产综合 在线 | 亚洲看看 | 精品久久久久一区二区国产 | 免费国精产品wnw2544 | 国产亚洲不卡 | 国产成人精品久 | 国产在线视频一区二区三区98 | 日皮视频免费看 | 久久久无码人妻精品一区 | 国产亚洲日韩在线播放更多 | 青青青国产 | 亚洲高清偷拍一区二区三区 | 国产精品白浆一区二小说 | 色噜噜狠狠一区二区 | 日本欧美久久久免费播放网 | 亚洲第一av网站 | 国产精品a免费一区久久电影 | 国产精品自在线拍国产手机版 | 狠狠躁夜夜躁人蜜臀av小说 | 神马久久久久久久久久久 | 四虎成人精品 | 一区二区三区精品视频日本 | 久久夜色精品国产欧美一区麻豆 | 日韩国产丝袜人妻一二区 | 亚洲精品国产一区二区在线观看 | 国产在线看片免费人成视频 | 欧美老肥妇做爰bbww | 我朋友的妈妈在线 | 97精品免费公开在线视频 | 五月综合色婷婷在线观看 | 无码精品人妻一区二区三区人妻斩 | 欧美成人精精品一区二区频 | 亚洲综合av永久无码精品一区二区 | 亚洲aⅴ无码专区在线观看q | 久青草国产在视频在线观看 | 狠狠色丁香婷婷综合久久图片 | 西西大胆午夜人体视频妓女 | 日韩在线一区二区三区免费视频 | 鲁丝片一区二区三区毛片 | 在阳台上玩弄人妻的乳球 | 国产精品字幕 | 18禁成人黄网站免费观看 | 亚洲三级影院 | 日韩色一区 | 7777欧美大白屁股ass | av狠狠色超碰丁香婷婷综合久久 | 亚洲免费视频一区二区三区 | 国产免费不卡午夜福利在线 | 天堂а√在线地址8 | 九九免费 | 7777亚洲大胆裸体艺术全集 | 国产午夜精品一区二区三 | 思思久热思 | 影音先锋日日狠狠久久 | 国产拍拍拍无遮挡免费 | 精品国偷自产在线视频99 | 国产精品中文久久久久久久 | www.youjizz.com在线| 久久96热在精品国产高清 | 亚洲一区在线观看免费视频 | 亚洲精品国产精 | 亚洲天堂av网站 | 国产亚洲欧美一区 | 看片国产| 国产精品户外野外 | 欧美xxxx做受视频 | 亚洲无吗一区二区三区 | 国产精品女人高潮毛片圣水 | 国产av在线www污污污十八禁 | 国精品无码人妻一区二区三区 | 少妇呻吟翘臀后进爆白浆在线观看 | 国产精品人人妻人人爽麻豆 | 777米奇久久最新地址 | 午夜免费视频 | 亚洲精品久久久狠狠狠爱 | 亚洲成人婷婷 | 国产内谢 | 136微拍宅男导航在线 | 99精品日本二区留学生 | av视屏在线| 国产精品国产三级国产专区51 | 一道久久 | 无码av大香线蕉伊人久久 | 好色先生丝瓜 | 红桃17c视频永久免费入口 | 91欧美精品成人综合在线观看 | 婷婷五情天综123 | 亚洲欧美日韩久久一区二区 | 精品成人av一区二区三区 | 国产日韩在线视频 | 国产涩涩视频在线观看 | 欧美又粗又大aaa片 午夜操操操 | 91文字幕巨乱亚洲香蕉 | 免费一级肉体全黄毛片 | 日本中文字幕一区二区高清在线 | 看成年女人午夜毛片免费 | 国产浮力第一页 | 日本少妇喂奶视频 | 国产成人av综合亚洲色欲 | 4438全国成人免费 | 久久久国产99久久国产久一 | 日本中文字幕在线视频二区 | 久久亚洲精品久久国产一区二区 | 国产一级性 | 黄色一级片免费看 | 欧美大胆老熟妇乱子伦视频 | 国产在线国偷精品产拍 | 国产大屁股视频免费区 | 久久久综合亚洲色一区二区三区 | 亚洲免费色视频 | 国产精品亚洲欧美中字 | 日韩国产二区 | 中国毛片免费看 | 黄又色又污又爽又高潮动态图 | 久久99国产综合精品女同 | a级在线免费 | 成人a片产无码免费视频在线观看 | 大地资源网第二页免费观看 | 国产欧美一区二区三区网站 | 欧美在线观看视频一区 | 日韩色一区 | 亚州性无码不卡免费视频 | 国产激情综合在线看 | 人人澡人人澡人人看添av | 久久久久久久极品内射 | 青春草在线免费观看 | 黑人粗大猛烈进出高潮视频 | 97超碰97| 四虎www| 青草青草久热精品视频国产4 | 国产午夜精品一区二区三区老 | 国产亚洲精品久久久久秋霞 | 91禁看片 | 无码a∨高潮抽搐流白浆 | 偷拍亚洲视频 | 青青草在在观免费福利线观看 | 久久精品国产亚洲欧美成人 | 99少妇偷拍视频在线 | 色久视频| 小次郎av最新地址入口 | 国色天香一区二区 | 日韩色图av | 熟女毛多熟妇人妻在线视频 | 一级二级三级黄色片 | 激情五月六月婷婷 | 美日韩一二三区 | 国产性色av高清在线观看 | 午夜伦4480yy妇女久久喷潮 | 国产成人av在线婷婷不卡九色 | 久久久www免费人成精品 | 夜夜骑夜夜 | 久久国产成人精品国产成人亚洲 | 午夜影院久久 | 婷婷成人亚洲综合国产xv88 | 天天爱天天操天天射 | jizzjizz中国人少妇中文 | 国产成人18黄网站免费观看 | 少妇天天爽视频在线看网站 | 99久久无码一区人妻a片蜜 | 亚洲色图一区二区三区 | 日本亚洲免费 | 久久天天综合桃花久久 | 亚洲综合成人婷婷五月在线观看 | 精品日韩在线观看 | 国产欧美日韩一区二区三区 | 久久婷婷五月综合色一区二区 | 国产精品亚洲玖玖玖在线观看 | 暗哟交小u女国产精品袍频 午夜yy | 94久久国产乱子伦精品免费 | 在线观看色视频 | 国产成人无码网站 | 黄色免费入口 | 久久精品人人做人人爽97 | 亚洲国产精品久久久久婷婷图片 | 免费看国产曰批40分钟 | 亚洲日韩国产精品第一页一区 | 亚洲国产无套无码av电影 | 四虎亚洲中文字幕无码永久 | 你懂的在线观看 | 成年人福利网站 | 亚洲国产成人无码av在线影院 | 欧美色一级 | 欧美日韩激情网 | 粉嫩av国产一区二区三区 | 国产爽爽久久影院潘金莲 | 五月天婷婷在线观看 | 午夜精品久久久久久久久久久久 | 亚洲精品www久久久 久久成人国产精品 | 五月婷婷之婷婷 | 国产毛毛片一区二区三区四区 | 99久久精品国产自在首页 | 亚洲综合av一区二区三区不卡 | 国产系列丝袜熟女精品网站 | 中文人妻无码一区二区三区在线 | 国产精品亚洲一区二区z | 日韩一区二区精品视频 | 一区二区三区欧美在线观看 | 亚洲视频91 | 日本www视频 | 偷拍大众浴池精品视频在线播放 | 中文字幕一本一二本迫 | 国产女主播白浆在线看 | 国内揄拍国内精品人妻 | 日韩成人在线视频观看 | 日本亚洲欧洲色α | 又黄又爽又无遮挡免费的网站 | 伊人狠狠操 | 伊人av综合 | 99精品国产福利在线观看 | 天天爱天天干天天操 | 思思久久96热在精品国产, | jizz一区二区三区 | 精品久久久久久亚洲综合网站 | 久久精品国产免费观看 | 鲁一鲁一鲁一鲁一av | 亚洲成人综合网站 | 国产成人午夜片在线观看高清观看 | 日本中文字幕一区二区有码在线 | 久青青视频在线观看久 | 无码人妻精品一区二区三区蜜桃 | 亚洲一区在线观看免费视频 | 婷婷综合久久中文字幕蜜桃三电影 | 免费的毛片网站 | 亚洲性色av性色在线观看 | 国产一区色 | 色噜噜色综合 | 青青青草网站免费视频在线观看 | 久久奸 | 91自产国偷拍在线 | 91色综合网 | 欧美色伊人 | 亚洲影院av| 国产成人片无码视频在线观看 | 免费日韩中文字幕 | 午夜精品视频一区 | 欧美猛交免费看 | 亚洲午夜福利在线视频 | 国产黄a三级三级 | 欧美影片免费看 | 国产做爰xxxⅹ久久久精华液 | 黄色大片免费观看视频 | 色原网站 | 新91视频在线观看 | 日韩av无码免费大片bd | 欧美视频网站在线观看 | 18美女裸体免费观看网站 | 91久久色| 台湾佬亚洲色图 | 吃奶呻吟打开双腿做受视频 | 99这里都是精品 | 亚洲精品无码午夜福利中文字幕 | 亚洲欧美熟妇自拍色综合图片 | 久久伊人色av天堂九九 | 捏胸吃奶吻胸免费视频网站 | 丰满少妇高潮惨叫久久久一 | 亚洲13p | 日韩一片 | 国产调教夫妻奴av | 国产痴汉av久久精品 | 五月天色片 | 久久亚洲精品国产 | 成人免费版欧美州 | 欧美精品乱码久久久久久按摩 | 日韩、欧美、亚洲综合在线 | 一级人妖大片 | 中文字幕无码视频手机免费看 | 乖女的小奶水h公霍水二 | 精品国产免费久久久久久婷婷 | 久久妇女高潮喷水多长时间 | 亚洲欧洲在线观看视频 | 色婷婷a | 人av在线| 国产精品久久亚洲 | 农村真人裸体丰满少妇毛片 | 国产免费美女视频 | 肥白大屁股bbwbbwhd | 丰满人妻跪趴高撅肥臀 | 国产999精品2卡3卡4卡 | 亚洲精品国产精品国自产网站按摩 | 亚洲阿v天堂网2019无码 | 永久免费看视频 | 性欧美大战久久久久久久 | 日韩av男人天堂 | 做爰xxxⅹ性69免费视频 | 国产三级aⅴ在在线观看 | 欧美一区二区三区在线 | 日本aa大片在线播放免费看 | av丝袜美腿 | 精品国产一区二区三区四 | 狠狠色狠狠色综合系列 | 国产亚洲精品久久久一区 | 免费看黄在线看 | 中国少妇av | 好吊视频一区二区三区 | 国产成人av三级在线观看按摩 | 亚洲国产av一区二区三区 | 国产成人av一区二区三区在线观看 | 91日日夜夜| 久久精品国产久精国产思思 | 希岛爱理在线 | 少妇高潮惨叫久久久久电影 | 香蕉视频日本 | 婷婷开心中文字幕 | 尤物av无码国产在线看 | 欧美性大战久久久久久久 | 午夜男女很黄的视频 | 成人午夜影视 | 久久精品一日日躁夜夜躁 | 粉嫩av| 片黄色毛片黄色毛片 | 一级a性色生活片久久毛片明星 | 日本xxxx裸体xxxx出水 | 拍拍拍无挡免费视频 | 国产精品夜夜春夜夜爽久久小说 | 无码人妻精品一区二区三区在线 | 日韩欧美tⅴ一中文字暮 | 91社在线观看 | 中文字幕日韩三级 | 黑色丝袜脚足国产在线看 | 国产入口 | 野外av| 久草网站在线观看 | 日韩最新在线 | 网站久久久 | 天堂√在线中文最新版8 | 无码国模大尺度视频在线观看 | 狠狠五月婷婷 | 国产美女被遭强高潮网站下载 | 人妻aⅴ中文字幕无码 | 久久99精品久久久久久园产越南 | 天天爱天天做久久狠狠做 | 欧美激情视频一区二区三区不卡 | 亚洲国产成人最新精品 | 999伊人 | 激情校园都市古典人妻 | 在线一区二区三区四区 | 67194少妇| 又污又爽又黄的网站 | 樱花草在线社区www日本影院 | 91精品国产高清久久久久久久久 | 一个人看的www视频在线播放 | 青青草草视频 | 欧美亚洲网 | 性zoz0交肉体| 亚洲国产成人一区二区在线 | 天天天天综合 | 亚洲欧洲偷自拍图片区 | 手机看片成人 | 亚洲欧洲自拍拍偷精品 美利坚 | 先锋资源久久 | 黄色av免费网站 | 欧美在线观看视频一区二区三区 | 色图插插 | 日本三级短视频 | 亚洲无人区码suv | 亚洲天砖砖区免费 | 最近中文字幕在线播放中 | 天天操天天干视频 | 狠狠色噜噜狠狠狠狠2021天天 | 国产午夜成人无码免费看不卡 | 免费九九视频 | 精品欧洲av无码一区二区男男 | 日本欧美v大码在线 | 日本高清一区二区三 | 肉丝av | 免费久久人人香蕉av | 极品尤物被啪到呻吟喷水 | 第四色亚洲色图 | 1区2区av | 国产亚洲精品一区二三区 | 国产美女在线免费 | 激情六月婷婷 | 欧美网站在线 | 久久2018 | 99热都是精品 | 午夜精品久久久久久久久久 | 色婷婷天堂 | 东北农村乱淫视频 | 五月深爱 | 粉嫩精品国产色综合久久不8 | 亚洲xx网| 国产精品毛片一区二区 | 伦理片免费完整片在线观看 | 伊人啪啪 | 亚洲偷自拍国综合色帝国 | av日韩网址 | 黄色一级片视频播放 | 午夜精品久久久久 | 国产在线视频主播区 | 波多野结衣爽到高潮大喷 | 永久免费不卡在线观看黄网站 | 国产aⅴ精品一区二区三区 亚州日本乱码一区二区三区 | 久久露脸国语精品国产91 | 欧美精品欧美极品欧美激情 | 亚洲国产99精品国自产拍 | 超碰影院在线 | 久久国产精品一国产精品 | 免费人成再在线观看视频 | 国产精品天天看特色大片 | 性视频一区二区三区 | 精品国产乱码久久久久久移动网络 | 男女啪啪资源 | 午夜色福利 | 人妻丝袜无码专区视频网站 | 国产精品日韩专区第一页 | 秋霞电影网午夜鲁丝片无码 | 精品国产一区二区三 | 久久久久在线观看 | 国产无套粉嫩白浆内谢在线 | 国产精品一区在线播放 | 国产精品1区2区3区4区 | 天堂婷婷 | 97av在线 | 色婷婷av99xx| 啪啪网视频 | 激情婷婷网 | 亚洲精选中文字幕 | 青春草av | 91亚色视频在线观看 | 无遮挡男女激烈动态图 | 少妇高潮久久久久久一代女皇 | 激情国产一区二区三区四区 | 一级黄色一级黄色 | 少妇高潮毛片高清免费播放 | 欧美变态口味重另类在线视频 | 国产五月天在线 | 精品国产不卡在线观看免费 | 日韩中文无码有码免费视频 | a国产精品 | 成人免费的视频 | 人妻少妇被粗大爽9797pw | 女人的天堂网站 | 国产对白叫床清晰在线播放图片 | 国产午夜片无码区在线播放 | 免费人成视频在线观看视频 | 午夜福利国产成人无码gif动图 | 天堂成人 | 亚洲成人免费视频 | 国内精品久久久久久影院 | 国产乱妇4p交换乱免费视频 | 色欲av永久无码精品无码 | 99年国精产品一二二区传媒 | 精品卡一卡二卡三免费 | 欧美一级片在线看 | 国产精品免费高清在线观看 | 99re热这里只有精品最新 | 久久99网 | 色悠久久久久综合网香蕉 | 亚洲自拍偷拍综合 | 精精国产xxxx视频在线动漫 | 国产精品一区在线蜜臀 | 18禁亚洲深夜福利入口 | 99久久日韩精品免费热麻豆美女 | 国产精品久久久久久久久搜平片 | 亚洲精品毛片一区二区三区 | 亚洲喷水| 911看片 | 久久男人高潮女人高潮 | 中文字幕人成乱码熟女免费 | 免费夜色污私人影院在线观看 | 日韩在线一区二区视频 | 白丝爆浆18禁一区二区三区 | 亚洲aⅴ欧洲av国产综合图片 | 国产真人做爰毛片视频直播 | av加勒比 | 成人免费视频视频在线观看 免费 | 亚洲аv电影天堂网 | 国产午夜亚洲精品羞羞网站 | 欧美在线免费 | 亚洲国产另类久久久精品小说 | 日韩精人妻无码一区二区三区 | 大j8黑人w巨大888a片 | 久久天天躁夜夜躁狠狠85台湾 | 黑人巨大精品欧美一区免费视频 | 精品人妻av一区二区三区 | 亚洲色成人一区二区三区 | 国产成人精品一区二区三区四区 | 午夜精品区 | 亚洲成人精品久久久 | 成人免费视频一区 | 国内精品久久久久影院男同志 | 奇米综合四色77777久久 | 久久精品无码专区免费东京热 | 天天摸日日操 | 操一操网站 | 成人免费视频国产 | 欧美一区二区在线免费观看 | 亚洲一卡二卡三卡 | 狠狠狠狠狠色综合 | 在线看国产视频 | 国产婷婷色综合av蜜臀av | 被黑人猛躁10次高潮视频 | 日韩中文字幕在线一区二区 | 午夜精品久久久久 | 十八禁啪啪无遮挡网站 | 桃色在线视频 | 成人夜色视频网站在线观看 | 图片区 小说区 区 亚洲五月 | 91av偷拍| 狠狠色噜噜狠狠狠狠777米奇 | 九九视频一区 | 男女真人后进式猛烈动态图视频 | 91精品国产入口在线 | av片日韩 | 久久精品成人免费观看97 | 国产亚洲欧美日韩在线一区 | 天天爽天天爽夜夜爽毛片 | 大战丰满无码人妻50p | 亚洲色欧美另类 | 窝窝午夜色视频国产精品破 | 国产成人一区二区三区影院动漫 | 日韩一二三四 | 福利小视频在线播放 | 亚洲欧美国产国产一区二区 | 中文字幕专区 | 亚洲欧美一区二区三区在线 | 自拍 亚洲 欧美 卡通 另类 | 自拍偷拍五月天 | 女人色网站 | 1024手机在线观看你懂的 | 色天使久久综合网天天 | 九九热视频免费观看 | 欧美日韓性视頻在線 | 国产做a爱片久久毛片a片 | av中文资源| 国产精品福利久久 | 国产精品美女www爽爽爽 | 美脚の诱脚舐め脚责91 | 久久免费毛片 | 在线观看免费视频a | 日韩av免费在线播放 | 国产一区二区三区在线电影 | 毛片哪里看 | 伊人久久成综合久久影院 | 伊人网亚洲 | 四虎四虎院5151hhcom | 亚洲色无码播放亚洲成av | 免费国产午夜视频在线观看 | 亚洲欧洲久久av | 国产久一 | 亚洲精品一区二区三区四区乱码 | 亚洲精品女 | 男女男精品免费视频网站 | 国产91在线播放 | 在线播放免费播放av片 | 亚洲国产一二三区 | 国产女人乱子对白av片 | 男人的机机桶女人的机机 | 五十路亲子中出在线观看 | 99色在线观看 | 69久久久久 | 国产中文字幕乱人伦在线观看 | 人妻少妇边接电话边娇喘 | 精品一区二区三区久久 | 丝袜自慰一区二区三区 | 久久久久久久久久久综合 | 最新精品国偷自产在线美女足 | 日韩av片在线 | 亚洲欧美偷拍视频一区 | 欧美久久久| 成人精品一区二区三区电影免费 | 女人高潮抽搐潮喷小视频 | 亚洲国产精品va在线观看麻豆 | 欧美在线播放一区二区 | 四虎永久在线精品免费一区二 | 亚洲无av码在线中文字幕 | 国产精品成人av电影不卡 | 国产精品成人免费999 | 毛片黄色片 | 日本精品中文字幕在线播放 | 女人爽得直叫免费视频 | 五月婷激情 | 青青草在在观免费福利线观看 | 91网站免费 | 韩日av网站 | 一边吃奶一边添p好爽故事 成人av黄色 | 999香蕉视频 | 九九热这里只有 | 国产线播放免费人成视频播放 | 最新精品久久 | 久久永久免费人妻精品下载 | 午夜丁香视频在线观看 | 国产内射爽爽大片视频社区在线 | 天堂网av在线播放 | 亚洲aⅴ无码成人网站国产 久久久久久久久久久久久久久久久久久久 | 激情综合激情 | 曰韩精品无码一区二区三区视频 | 欧美在线视频免费播放 | 亚色视频在线观看 | 国内精品久久久久伊人av | 久久伊人五月丁香狠狠色 | 亚洲高清毛片一区二区 | 久久精品国产亚洲5555 | 久久9热| 国产精品点击进入在线影院高清 | 一本—道久久a久久精品蜜桃 | 特色特色大片在线 | 久草免费av | 偷拍亚洲另类 | 精品视频九九 | 综合亚洲另类欧美久久成人精品 | 麻花传媒mv国产免费观看视频 | 中国肥老太婆高清video | 亚洲精品日韩欧美 | 日本丰满的人妻hd高清在线 | 中文字幕无码色综合网 | 国产精品自在线拍亚洲另类 | 成人午夜又粗又硬又大 | 一区二区三区激情视频 | 国产偷自视频区视频一区二区 | 色欲色香天天天综合无码www | 日韩av高清不卡在线 | 国产成人精品午夜在线播放 | 妺妺窝人体色www看人体 | 免费se99se | 99久久久无码国产精品秋霞网 | 婷婷四房色播 | 强伦姧人妻三上悠亚中文字幕 | 天堂新版8中文在线8 | 欧美午夜精品久久久久久浪潮 | 免费纯肉3d动漫无码网站 | 84pao国产成视频永久免费 | 91资源新版在线天堂成人 | 亚洲日日射 | 国产a∨天天免费观看美女 亚洲精品视频在线观看免费视频 | 久久伊人爱 | www.一区| 在线视频一二三区 | 日韩精品无码一区二区中文字幕 | 国精品人妻无码一区二区三区喝尿 | 亚洲—本道中文字幕东京热 | 九九视频在线免费观看 | 国产伦一区二区三区色一情 | 狠狠躁18三区二区一区传媒剧情 | 18禁美女裸体无遮挡免费观看国产 | 麻豆成人av不卡一二三区 | 天堂在线国产 | 精品少妇xxxx | 秋霞国产午夜伦午夜福利片 | 亚洲国产成人无码av在线影院l | av性色av久久无码ai换脸 | 久久99精品国产一区二区三区 | 中文在线国产 | 日本一码二码三码在线 | 国产成人av乱码在线观看 | 欧美做爰爽爽爽爽爽爽 | 黄色小说免费网址 | 大香伊人中文字幕精品 | 看毛片的网站 | 2020国产激情视频在线观看 | 精品亚洲国产成人av在线 | 欧美人与禽猛交乱配视频 | 波多野结衣视频在线播放 | 99国产精品99久久久久久 | 中文字幕在线播放第一页 | 麻豆国产91在线播放 | 少妇挑战三个黑人惨叫4p国语 | 日本a级片免费 | 国产一区午夜 | 亚洲欧洲成人精品久久一码二码 | 国产欧美在线看 | 日本aⅴ写真网站免费 | 在线天堂中文www视软件 | 欧美香蕉爽爽人人爽 | 亚洲v不卡ww在线 | 韩国三级中文字幕hd久久精品 | 三个男吃我奶头一边一个视频 | 久久99国产综合精品女同 | 国产精品视频啪啪 | 国产精品久久人妻互换 | 亚洲色欲久久久综合网东京热 | 精品国产人妻一区二区三区免费 | 亚洲区欧美| 亚洲妇女水蜜桃av网网站 | 香蕉久久人人97超碰caoproen | 青草青草久热精品视频在线播放 | 国产99视频精品专区 | 国产精品久久久久久无码 | 精品久久久爽爽久久男人和男人 | 天天夜夜啦啦啦 | 国产成人精品午夜在线播放 | 国精品人妻无码一区二区三区3d | 人妻av综合天堂一区 | 免费视频久久 | 9色porny自拍视频一区二区 | 国产精品午夜视频自在拍 | 综合网五月 | 瑟瑟视频在线免费观看 | 亚洲综合在线视频 | 插插射啊爱视频日a级 | 国语自产偷拍在线观看 | 亚洲aⅴ男人的天堂在线观看 | 亚洲乱码高清午夜理论电影 | 亚洲最大av无码国产 | 又粗又猛又爽又黄少妇视频网站 | 91久久久久久久久久久久久 | 久久久久亚洲精品无码网址 | 国产无遮挡裸体美女视频 | 男女啪啪免费观看无遮挡 | 成年人免费看视频 | 久久中文字幕免费 | 视频一区亚洲 | 欧美二区视频 | 日韩久久精品一区 | 思思久热思| 久久精品国产久精国产 | 亚洲精品国产精品国自产在线 | 狠狠色丁香婷婷久久综合考虑 | 久久受www免费人成 99在线播放视频 | 色噜噜狠狠色综合日日 | 国产思思99re99在线观看 | 在线观看日韩欧美 | 国产精品欧美一区二区三区不卡 | 欧美最爽乱婬视频免费看 | 国产成人精品免费 | 91免费大片 | 亚洲国产成人久久综合人 | 国产精品亚洲а∨天堂123bt | 欧美亚洲国产手机在线有码 | 欧美真人性做爰一二区 | 日韩精品在线观看一区 | 久久亚洲精品无码av大香大香 | 免费国产黄色网址 | 亚洲精品国产精品无码国模 | 国产精品偷伦视频免费手机播放 | 性高朝大尺度少妇大屁股 | 国产精品久久香蕉免费播放 | 免费一区二区无码东京热 | 亚洲欧美日韩在线看 | 欧美一级免费片 | 一级全黄色片 | 精品无人国产偷自产在线 | 亚洲精品成人在线视频 | 男女羞羞羞视频午夜视频 | 97午夜理论片在线影院 | 国产精品偷伦视频免费观看的 | 国产美女明星三级做爰 | 婷婷射丁香 | 亚洲色婷婷久久精品av蜜桃 | 三男一女吃奶添下面视频 | 香蕉视频99 | 国产男女做爰免费网站 | 精一区二区| 四虎视频国产精品免费入口 | 国产精品卡1卡2卡三卡四 | 欧美精品在线一区二区三区 | 无码精品国产va在线观看dvd | 精品国产一区二区三区小蝌蚪 | 最近2019中文字幕在线 | 精品无码国产av一区二区 | 国产av亚洲第一女人av | 97色偷偷色噜噜狠狠爱网站 | 青青草最新网址 | 青少年xxxxx性开放hg | 国产一区二区三区久久久久久久久 | 91免费观看视频网站 | 欧美顶级metart裸体全部自慰 | 18女人毛片| 国产精品久久久久蜜芽 | 欧美熟色妇 | 国产在线观看a | 狠狠色丁香婷婷久久 | 日韩黄色中文字幕 | 又黄又爽又猛的视频免费 | 久久99综合| 富婆按摩高潮av久久爱 | 久久久www成人免费毛片女 | 男女后进式猛烈xx00动态图片 | 日本三级网络 | 亚洲色偷拍区另类无码专区 | 国内精品视频一区二区八戒 | 亚洲丝袜第一页 | 天干天干天啪啪夜爽爽av | 中国一级a毛片 | 日韩 欧美 国产 一区三 | 国产极品车模吞精高潮呻吟 | 又色又爽又黄又无遮挡网站 | 欧美香蕉视频 | 久久女人 | 国内精品伊人久久久久影院麻豆 | 日韩精品免费一区二区三区 | 96亚洲精品久久 | 国内揄拍国内精品少妇 | 4hu在线| 国产精品午夜小视频观看 | 亚洲精品久久久久久一区二区 | 日韩欧美在线观看视频网站 | 久久久久久成人 | 在线视频一区二区三区四区 | 天堂成人网 | 三个男人躁我一个爽视频免费 | 91香蕉影院 | 日本一区二区在线观看视频 | 欧美日韩综合精品一区二区 | 亚洲九九在线 | 成人中文在线 | 最新av片免费网站入口 | 国产农村妇女野外牲交视频 | 亚洲成色在线 | 日本激情网站 | av男人天堂影院 | 欧美熟妇另类久久久久久多毛 | 国产欧美久久一区二区三区 | 福利视频一二三区 | 人妻丰满熟妇av无码区hd | 婷婷九月综合 | 天堂资源在线官网 | 日韩一区二区高清 | 中文字幕日韩精品一区 | 激情久久亚洲 | 亚洲伊人av | 精品久久久久久天美传媒 | 精品综合久久久久久888 | 久久久99精品成人片 | 黑人巨茎精品欧美一区二区 | 男人j桶进女人p无遮挡免费观看 | 伊人中文在线最新版天堂 | 久久久久久久网站 | 国产精品久久久久久久久久久久午衣片 | 国产成人片一区在线观看 | 天堂av在线官网 | 欧美大喷水吹潮合集在线观看 | 新超碰97| 欧美日韩精品一区二区三区不卡 | 一本大道久久 | 久草麻豆| 欧美日韩精品一区二区三区 | 精久久 | 99热在线免费 | 超碰高清在线 | 国产精品毛片久久久久久久av | 日本色中色 | 777色婷婷视频二三区 | 中文字幕国产在线观看 | 99精品欧美一区二区蜜桃美图 | 久久精品成人欧美大片 | 日韩精品一区二区三区视频 | 三级经典三级日本三级欧美 | 久久精品亚洲一区二区三区画质 | 亚洲综合久久久 | 国产成人精品女人久久久 | 影音先锋成人资源站 | 国产精品亚洲欧美日韩久久制服诱 | 欧美丰满熟妇乱xxxxx视频 | 久久这里只有精品国产 | 舌头伸进去搅动好爽视频 | 国产精品无卡毛片视频 | 亚洲欧美一区二区三区四区 | 性一交一乱一色一视频 | 中文字幕欧美一区 | 日本美女久久 | 又黄又爽视频在线观看 | 亚洲欧美熟妇综合久久久久 | 人人妻人人a爽人人模夜夜夜 | 成人 黄 色 免费播放 | 欧美99热 | 精品久久久久久中文墓无码 | 国产综合久久精品 | 国产在线中文字幕 | 极品美女高潮呻吟国产剧情91 | 18勿入网站免费永久 | 亚洲天堂在线视频播放 | 伊人春色网 | 国产超碰人人做人人爽av大片 | 国产饥渴孕妇在线播放 | 久久人人干 | 精品一区二区成人精品 | 无码国产色欲xxxx视频 | 毛片毛片毛片毛片毛片毛片毛片 | 国产午夜福利在线观看红一片 | 一区二区欧美精品 | 啵啵影院 在线欧美播放 | 欧美a黄 | 欧美系列一区二区 | 久久五月综合 | 日韩精品视频大全 | 80s国产成年女人毛片 | 黄色av片三级三级三级免费看 | 无码专区狠狠躁躁天天躁 | 亚洲中文字幕无码一区无广告 | 无码喷水一区二区浪潮av | 亚洲成人黄色影院 | 午夜免费啪 | 午夜影院在线观看 | 中文字幕精品久久久久人妻红杏1 | 久久大香香蕉国产免费网动漫 | 日本人的色道视频 | 欧美巨大oooo| 操亚洲女人 | 婷婷av网| 成人国产精品久久久春色 | 97se狠狠狠综合亚洲狠狠 | 日韩精品欧美在线视频在线 | 9797在线看片亚洲精品 | 免费视频福利 | 国产aⅴ爽av久久久久电影渣男 | 94精品激情一区二区三区 | 日韩国产精品无码一区二区三区 | 天天干天天射天天操 | 亚洲精品久久酒店 | 美国毛片基地 | 综合人妻久久一区二区精品 | 色网在线看 | 国产真实交换配乱淫视频, 日韩欧美无 | 日韩欧美福利视频 | 亚洲欧美成人aⅴ大片 | 无码国产精品一区二区免费模式 | 狠狠躁夜夜躁青青草原 | 国产亚洲精品久久久久久无 | 日韩人妻无码一区二区三区久久 | 成人午夜在线免费 | 亚洲第一天堂久久 | 国产真实伦在线观看 | 91精品国产91久久久久久三级 | 国产极品美女高潮抽搐免费网站 | 欧美制服丝袜人妻另类 | 久久精品三级视频 | 又黑又粗又长的欧美一区 | 亚洲欧美日韩国产另类电影 | 国产精品v亚洲精品v日韩精品 | 性欧美精品高清 | 天天影视色香欲综合网一寡妇 | 日本精品免费观看 | 在线日本视频 | 亚洲老熟女与小伙bbwtv | 午夜激情免费 | 中国少妇xxxxx | 中国成人毛片 | 99精品大学生啪啪自拍 | 人人干在线视频 | 久久精品囯产精品亚洲 | 五月色婷婷综合 | 国产东北肥熟老胖女 | 影音先锋亚洲精品 | 强被迫伦姧在线观看无码 | 97精品国产97久久久久久春色 | 乱女伦露脸对白在线播放 | 日本人配人免费视频人 | 亚洲七久久之综合七久久 | 亚洲成a人v欧美综合天堂麻豆 | 色精品视频| 新天堂av| 日韩视频一区二区三区在线播放免费观看 | 国产在线精品一区二区在线观看 | 欧美高清视频一区二区 | 久久涩 | 中文字幕日本免费毛片全过程 | 亚洲国产成人综合在线观看 | 久久香蕉成人免费大片 | 使劲快高潮了国语对白在线 | 国产v日产∨综合v精品视频 |