亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JAVA基礎學習day21--IO流三-File、Properties、PrintWriter與合并、分割流

2019-11-14 15:29:34
字體:
來源:轉載
供稿:網友

一、File

1.1、File概述

 

文件和目錄路徑名的抽象表示形式。

用戶界面和操作系統使用與系統相關的路徑名字符串 來命名文件和目錄。此類呈現分層路徑名的一個抽象的、與系統無關的視圖。抽象路徑名 有兩個組件

  1. 一個可選的與系統有關的前綴 字符串,比如盤符,"/" 表示 UNIX 中的根目錄,"http:////" 表示 Microsoft Windows UNC 路徑名。
  2. 零個或更多字符串名稱 的序列。 

字段摘要
static StringpathSeparator
與系統有關的路徑分隔符,為了方便,它被表示為一個字符串。
static charpathSeparatorChar
與系統有關的路徑分隔符。
static Stringseparator
與系統有關的默認名稱分隔符,為了方便,它被表示為一個字符串。
static charseparatorChar
與系統有關的默認名稱分隔符。
構造方法摘要
File(File parent, String child)
根據 parent 抽象路徑名和 child 路徑名字符串創建一個新 File 實例。
File(String pathname)
通過將給定路徑名字符串轉換為抽象路徑名來創建一個新 File 實例。
File(String parent, String child)
根據 parent 路徑名字符串和 child 路徑名字符串創建一個新 File 實例。
File(URI uri)
通過將給定的 file: URI 轉換為一個抽象路徑名來創建一個新的 File 實例。

 

方法摘要
booleancanExecute()
測試應用程序是否可以執行此抽象路徑名表示的文件。
booleancanRead()
測試應用程序是否可以讀取此抽象路徑名表示的文件。
booleancanWrite()
測試應用程序是否可以修改此抽象路徑名表示的文件。
intcompareTo(File pathname)
按字母順序比較兩個抽象路徑名。
booleancreateNewFile()
當且僅當不存在具有此抽象路徑名指定名稱的文件時,不可分地創建一個新的空文件。
static FilecreateTempFile(String PRefix, String suffix)
在默認臨時文件目錄中創建一個空文件,使用給定前綴和后綴生成其名稱。
static FilecreateTempFile(String prefix, String suffix, File directory)
在指定目錄中創建一個新的空文件,使用給定的前綴和后綴字符串生成其名稱。
booleandelete()
刪除此抽象路徑名表示的文件或目錄。
voiddeleteOnExit()
在虛擬機終止時,請求刪除此抽象路徑名表示的文件或目錄。
booleanequals(Object obj)
測試此抽象路徑名與給定對象是否相等。
booleanexists()
測試此抽象路徑名表示的文件或目錄是否存在。
FilegetAbsoluteFile()
返回此抽象路徑名的絕對路徑名形式。
StringgetAbsolutePath()
返回此抽象路徑名的絕對路徑名字符串。
FilegetCanonicalFile()
返回此抽象路徑名的規范形式。
StringgetCanonicalPath()
返回此抽象路徑名的規范路徑名字符串。
longgetFreeSpace()
返回此抽象路徑名指定的分區中未分配的字節數。
StringgetName()
返回由此抽象路徑名表示的文件或目錄的名稱。
StringgetParent()
返回此抽象路徑名父目錄的路徑名字符串;如果此路徑名沒有指定父目錄,則返回 null。
FilegetParentFile()
返回此抽象路徑名父目錄的抽象路徑名;如果此路徑名沒有指定父目錄,則返回 null。
StringgetPath()
將此抽象路徑名轉換為一個路徑名字符串。
longgetTotalSpace()
返回此抽象路徑名指定的分區大小。
longgetUsableSpace()
返回此抽象路徑名指定的分區上可用于此虛擬機的字節數。
inthashCode()
計算此抽象路徑名的哈希碼。
booleanisAbsolute()
測試此抽象路徑名是否為絕對路徑名。
booleanisDirectory()
測試此抽象路徑名表示的文件是否是一個目錄。
booleanisFile()
測試此抽象路徑名表示的文件是否是一個標準文件。
booleanisHidden()
測試此抽象路徑名指定的文件是否是一個隱藏文件。
longlastModified()
返回此抽象路徑名表示的文件最后一次被修改的時間。
longlength()
返回由此抽象路徑名表示的文件的長度。
String[]list()
返回一個字符串數組,這些字符串指定此抽象路徑名表示的目錄中的文件和目錄。
String[]list(FilenameFilter filter)
返回一個字符串數組,這些字符串指定此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。
File[]listFiles()
返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件。
File[]listFiles(FileFilter filter)
返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。
File[]listFiles(FilenameFilter filter)
返回抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中滿足指定過濾器的文件和目錄。
static File[]listRoots()
列出可用的文件系統根。
booleanmkdir()
創建此抽象路徑名指定的目錄。
booleanmkdirs()
創建此抽象路徑名指定的目錄,包括所有必需但不存在的父目錄。
booleanrenameTo(File dest)
重新命名此抽象路徑名表示的文件。
booleansetExecutable(boolean executable)
設置此抽象路徑名所有者執行權限的一個便捷方法。
booleansetExecutable(boolean executable, boolean ownerOnly)
設置此抽象路徑名的所有者或所有用戶的執行權限。
booleansetLastModified(long time)
設置此抽象路徑名指定的文件或目錄的最后一次修改時間。
booleansetReadable(boolean readable)
設置此抽象路徑名所有者讀權限的一個便捷方法。
booleansetReadable(boolean readable, boolean ownerOnly)
設置此抽象路徑名的所有者或所有用戶的讀權限。
booleansetReadOnly()
標記此抽象路徑名指定的文件或目錄,從而只能對其進行讀操作。
booleansetWritable(boolean writable)
設置此抽象路徑名所有者寫權限的一個便捷方法。
booleansetWritable(boolean writable, boolean ownerOnly)
設置此抽象路徑名的所有者或所有用戶的寫權限。
StringtoString()
返回此抽象路徑名的路徑名字符串。
URItoURI()
構造一個表示此抽象路徑名的 file: URI。
URLtoURL()
已過時。 此方法不會自動轉義 URL 中的非法字符。建議新的代碼使用以下方式將抽象路徑名轉換為 URL:首先通過 toURI 方法將其轉換為 URI,然后通過 URI.toURL 方法將 URI 裝換為 URL。

1.2、File創建與刪除

 

import java.io.*;class FileDemo1 {    public static void main(String[] args)     {        method1();    }    public static void method1()    {        //創建File對象        File f1=new File("a.txt");        //第二種        File f2=new File("d://abc","b.txt");        //第三種        File dir=new File("d://bcd");        File f3=new File(dir,"c.txt");        //使用分隔符        File f4=new File("d:"+File.separator+"abc"+File.separator+"d.txt");        //輸出        System.out.println("f1="+f1);//a.txt        System.out.println("f2="+f2);//d:/abc/b.txt        System.out.println("f3="+f3);//d:/bcd/c.txt        System.out.println("f4="+f4);//d:/abc/d.txt    }}

 

創建文件

 

 

//創建文件,在指定位置創建文件,如果該文件已經存在,則不創建,返回 false    public static void method1() throws IOException    {        File f=new File("d://file.txt");        //創建        sop("create: "+f.createNewFile());        //刪除,刪除失敗返回false        //sop("delete:"+f.delete());        //在退出時刪除指定文件        f.deleteOnExit();    }

 

1.3、File判斷 File獲取

 

package com.pb.day20.io.file;import java.io.File;import java.io.IOException;public class FileDemo2 {    public static void main(String[] args) throws IOException {        File f1=new File("d://a.txt");        File f2=new File("e://c.txt");        File dir1=new File("d://dbc");        File dir2=new File("d://dbc//dd//aa//d//f//dsf//fsd");        //判斷文件是否存在,不存在就創建        if(!f1.exists()){            f1.createNewFile();        }        //判斷文件夾是否存在        if(!dir1.exists()){            dir1.mkdir();//創建一層文件夾        }        //創建多層文件夾        if(!dir2.exists()){            dir2.mkdirs();        }        //判斷        sop("f1是文件嗎?"+f1.isFile());        sop("dir1是文件夾嗎?"+dir1.isDirectory());        sop("f1是可執行文件嗎?"+f1.canExecute());        sop("f1可讀嗎?"+f1.canRead());        sop("f1可寫嗎?"+f1.canWrite());        sop("f1是隱藏文件嗎?"+f1.isHidden());        //獲取文件信息        sop(f1.getName());//文件名        sop(f1.getPath());//相對路徑        sop(f1.getAbsolutePath());//獲取絕對路徑,返回值是字符串        sop(f1.getAbsoluteFile());//獲取絕對路徑,返回值是File類對象        sop(f1.lastModified());//最后修改時間 長整型        sop(f1.length());//文件字節大小,長整型        //重命名        sop(f1.renameTo(f2));//剪切的作用            }    public static void sop(Object obj){        System.out.println(obj);    }}

 

 

1.4、File文件列表

 

package com.pb.day20.io.file;import java.io.File;import java.io.FilenameFilter;public class FileDemo3 {    public static void main(String[] args) {        method3();    }    //列出當前目錄下的指定文件    public static void method3(){        File f=new File("d://");        File [] files=f.listFiles(new FilenameFilter() {                        @Override            public boolean accept(File dir, String name) {                //返回txt文件                return  name.endsWith(".txt");            }        });        for(File ff:files){            System.out.println(ff.getName()+"..."+ff.length());        }    }                //列表當前目錄下的所有文件包含文件夾名字    public static void method2(){        File f=new File("c://");        String [] names=f.list();//必須是目錄,否則就是空指針異常        for(String s:names){            System.out.println(s);        }    }            //列出當前系統的所有盤符    public static void method1(){        File [] files=File.listRoots();        for(File f:files){            System.out.println(f);        }            }}

 

1.6、File列出所有遞歸

 

package com.pb.day20.io.file;/** * 遞歸調用, * 列表指定目錄下的,所有文件包括子目錄中的文件 */import java.io.File;public class FileDemo4 {    public static void main(String[] args) {        File dir=new File("d://");        getFiles(dir);    }        //遞歸    public static void getFiles(File dir){        System.out.println(dir);        //獲取文件數組,列表        File[] files=dir.listFiles();        //遍歷        for(File file:files){            //判斷是不是文件夾        if(file.isDirectory()){            //是文件夾就再次調用            getFiles(file);        }else{            //不是就列表            System.out.println(file);        }        }    }}

 

遞歸:

限定條件

注意遞歸的次數,盡量避免內存溢出

 

1.7、File刪除帶文件的目錄

 

package com.pb.day20.io.file;import java.io.File;public class FileDemo5 {    public static void main(String[] args) {        File dir=new File("d://kk");        removeDir(dir);    }    //刪除,帶有文件的多層文件夾    public static void removeDir(File dir){        File [] files =dir.listFiles();        for(int x=0;x<files.length;x++){            if(files[x].isDirectory()){                removeDir(files[x]);            }else{                //刪除文件            System.out.println(files[x]+"----file----"+files[x].delete());            }        }        //刪除空文件夾        System.out.println(dir+"----dir----"+dir.delete());            }}

 

1.8、將一個文件夾的的所有文件,包含子目錄都復制要另一個目錄下

 

/*將一個文件夾的的所有文件,包含子目錄都復制要另一個目錄下*/import java.io.*;class IOCopy {    public static void main(String[] args)     {        //源文件        File src=new File("D://music");        //目的文件        File des=new File("e://test");        copyDir(src,des);        System.out.println("復制完成!");    }        /*    遞歸復制    */    public static void copyDir(File src,File des)    {            //獲取列表        File[] files=src.listFiles();        //判斷目標文件是否存在        if(!des.exists()){            //創建目錄            des.mkdir();        }        //遍歷        for(File f:files)        {                //判斷是不是目錄            if(f.isDirectory())            {                //獲取路徑,拼接文件名,再次調用自己            copyDir(new File(f.getPath()),new File(des+"http://"+f.getName()));            //是不是文件            }else if (f.isFile())            {                //復制                copyFile(new File(f.getPath()),new File(des+"http://"+f.getName()));            }                }    }    //使用IO流復制文件    public static void copyFile(File src,File des)    {        BufferedInputStream bis=null;        BufferedOutputStream bos=null;        try        {            bis=new BufferedInputStream(new FileInputStream(src));            bos=new BufferedOutputStream(new FileOutputStream(des));            //聲明緩沖區            int len=0;            while((len=bis.read())!=-1)            {                bos.write(len);            }        }        catch (IOException e)        {             e.printStackTrace();          }finally        {            try        {            if(bos!=null)                bos.close();        }        catch (IOException e)        {             e.printStackTrace();          }        try        {            if(bis!=null)                bis.close();        }        catch (IOException e)        {             e.printStackTrace();          }                    }    }}

 

 

二、Properties

2.1、Properties概述

 

構造方法摘要
Properties()
創建一個無默認值的空屬性列表。
Properties(Properties defaults)
創建一個帶有指定默認值的空屬性列表。

方法摘要
StringgetProperty(String key)
用指定的鍵在此屬性列表中搜索屬性。
StringgetProperty(String key, String defaultValue)
用指定的鍵在屬性列表中搜索屬性。
voidlist(PrintStream out)
將屬性列表輸出到指定的輸出流。
voidlist(PrintWriter out)
將屬性列表輸出到指定的輸出流。
voidload(InputStream inStream)
從輸入流中讀取屬性列表(鍵和元素對)。
voidload(Reader reader)
按簡單的面向行的格式從輸入字符流中讀取屬性列表(鍵和元素對)。
voidloadFromxml(InputStream in)
將指定輸入流中由 XML 文檔所表示的所有屬性加載到此屬性表中。
Enumeration<?>propertyNames()
返回屬性列表中所有鍵的枚舉,如果在主屬性列表中未找到同名的鍵,則包括默認屬性列表中不同的鍵。
voidsave(OutputStream out, String comments)
已過時。 如果在保存屬性列表時發生 I/O 錯誤,則此方法不拋出 IOException。保存屬性列表的首選方法是通過 store(OutputStream out, String comments) 方法或 storeToXML(OutputStream os, String comment) 方法來進行。
ObjectsetProperty(String key, String value)
調用 Hashtable 的方法 put。
voidstore(OutputStream out, String comments)
以適合使用 load(InputStream) 方法加載到 Properties 表中的格式,將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出流。
voidstore(Writer writer, String comments)
以適合使用 load(Reader) 方法的格式,將此 Properties 表中的屬性列表(鍵和元素對)寫入輸出字符。
voidstoreToXML(OutputStream os, String comment)
發出一個表示此表中包含的所有屬性的 XML 文檔。
voidstoreToXML(OutputStream os, String comment, String encoding)
使用指定的編碼發出一個表示此表中包含的所有屬性的 XML 文檔。
Set<String>stringPropertyNames()
返回此屬性列表中的鍵集,其中該鍵及其對應值是字符串,如果在主屬性列表中未找到同名的鍵,則還包括默認屬性列表中不同的鍵。

Properties 類表示了一個持久的屬性集。Properties 可保存在流中或從流中加載。屬性列表中每個鍵及其對應值都是一個字符串。 

 

2.2、存取功能

 

public static void setAndGet(){        //聲明        Properties prop=new Properties();        //設置        prop.setProperty("username", "root");        prop.setProperty("passWord","root");        //獲取用戶名對應的值        System.out.println(prop.getProperty("username"));        //修改密碼        prop.setProperty("password","root123");        //獲取全部key        Set<String> keys=prop.stringPropertyNames();        //遍歷        for(String s:keys){            System.out.println(s+": "+prop.getProperty(s));        }    }

 

2.3、存取配置文件

 

    public static void method2() throws IOException {        // 聲明Properties集合        Properties prop = new Properties();        FileInputStream fis = new FileInputStream("D:/info.txt");                FileOutputStream fos = new FileOutputStream("D://info.txt");            //加載數組到集合        prop.load(fis);        System.out.println(prop);        prop.list(System.out);                //修改        prop.setProperty("sex", "woman");        prop.store(fos, "sex is woman");        System.out.println(prop);        fos.close();        fis.close();    }    public static void method1() throws IOException {        // 文件流        BufferedReader br = new BufferedReader(new FileReader("D://info.txt"));        // 聲明Properties集合        Properties prop = new Properties();        String line = null;        // 遍歷        while ((line = br.readLine()) != null) {            // System.out.println(line);            String[] arr = line.split("=");            // System.out.println(arr[0]+"..."+arr[1]);            prop.setProperty(arr[0], arr[1]);        }        System.out.println(prop);        br.close();    }

 

 

 

示例

 

public static void method() throws IOException{        File file=new File("a.txt");                //判斷文件是否存在        if(!file.exists()){            file.createNewFile();        }        FileInputStream fis=new FileInputStream(file);        //聲明集合        Properties prop=new Properties();        prop.load(fis);        int count=0;        String value=prop.getProperty("times");        if(value!=null){            count=Integer.parseInt(value);            //判斷次數            if(count>=5){                System.out.println("使用次數已經用完,請續費!");                return;            }        }        //次數+1        count++;        //把KEY和VALUE放回去        prop.setProperty("times", count+"");        FileOutputStream fos=new FileOutputStream(file);        prop.store(fos, "次數+1");        fos.close();        fis.close();    }

 

 

 

三、PrintWriter與序列流

3.1、PrintWriter與PrintStream

 

package com.pb.io.properties.demo1;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.PrintWriter;/** * 從鍵盤接收數據,并輸出在控制臺 * 使用PrintWriter * */public class PrintWriterDemo {    public static void main(String[] args) throws IOException {        //從鍵盤接收數據,并輸出在控制臺        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));                //使用打印流輸出,并自動刷新        PrintWriter pw=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)),true);                String line=null;        System.out.println("請輸入內容,以over結束!");        while((line=br.readLine())!=null){            if("over".equals(line)){                break;            }            pw.println(line);        }        pw.close();        br.close();    }}

 

 

3.2、序列流--SequenceInputStream

SequenceInputStream 表示其他輸入流的邏輯串聯。它從輸入流的有序集合開始,并從第一個輸入流開始讀取,直到到達文件末尾,接著從第二個輸入流讀取,依次類推,直到到達包含的最后一個輸入流的文件末尾為止。

構造方法摘要
SequenceInputStream(Enumeration<? extends InputStream> e)
通過記住參數來初始化新創建的 SequenceInputStream,該參數必須是生成運行時類型為 InputStream 對象的 Enumeration 型參數。
SequenceInputStream(InputStream s1, InputStream s2)
通過記住這兩個參數來初始化新創建的 SequenceInputStream(將按順序讀取這兩個參數,先讀取 s1,然后讀取 s2),以提供從此 SequenceInputStream 讀取的字節。

方法摘要
intavailable()
返回不受阻塞地從當前底層輸入流讀?。ɑ蛱^)的字節數的估計值,方法是通過下一次調用當前底層輸入流的方法。
voidclose()
關閉此輸入流并釋放與此流關聯的所有系統資源。
intread()
從此輸入流中讀取下一個數據字節。
intread(byte[] b, int off, int len)
將最多 len 個數據字節從此輸入流讀入 byte 數組。

 

 

 

 

四、合并流

4.1、合并流

 

package com.pb.io.properties.demo1;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.SequenceInputStream;import java.util.Enumeration;import java.util.Vector;public class SequenceDemo {    public static void main(String[] args) throws IOException {                Vector<FileInputStream> v=new Vector<FileInputStream>();        v.add(new FileInputStream("d://1.txt"));        v.add(new FileInputStream("d://2.txt"));        v.add(new FileInputStream("d://3.txt"));        //轉換為枚舉        Enumeration<FileInputStream> en=v.elements();        //合并流        SequenceInputStream sis=new SequenceInputStream(en);        //目標文件        FileOutputStream fos=new FileOutputStream("d://4.txt");        //聲明緩沖區        byte[] buf=new byte[1024];        int len=0;        while((len=sis.read(buf))!=-1){            fos.write(buf,0,len);        }        fos.close();        sis.close();    }}

 

 

 

五、分割流

5.1、分割流

 

package com.pb.io.properties.demo1;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.SequenceInputStream;import java.util.ArrayList;import java.util.Enumeration;import java.util.Iterator;/** * 將文件切割 * 再合并 * */public class SplitDemo {    public static void main(String[] args) throws IOException {            //split();        merge();    }    //合并    public static void merge() throws IOException{        File src=new File("D://split");        File [] files=src.listFiles();        ArrayList<FileInputStream> list=new ArrayList<FileInputStream>();        for(File f:files){            list.add(new FileInputStream(f));        }        Iterator<FileInputStream> it=list.iterator();        //創建枚舉        Enumeration<FileInputStream> en=new Enumeration<FileInputStream>() {                        @Override            public FileInputStream nextElement() {                                return it.next();            }            @Override            public boolean hasMoreElements() {                return it.hasNext();            }        };                //創建合并流        SequenceInputStream sis=new SequenceInputStream(en);        FileOutputStream fos=new FileOutputStream("D://split//t.mp3");        byte[] buf=new byte[1024];        int len=0;        while((len=sis.read(buf))!=-1){            fos.write(buf,0,len);        }        fos.close();        sis.close();            }                //切割    public static void split() throws IOException{        //源文件        File file=new File("D://gm.mp3");                FileInputStream fis=new FileInputStream(file);        //目標        FileOutputStream fos=null;        //緩沖區        byte[] buf=new byte[1024*1024];        int len=0;        int count=1;        while((len=fis.read(buf))!=-1){            fos=new FileOutputStream("D://split//"+(count++)+".part");            fos.write(buf,0,len);        }        fos.close();        fis.close();    }}

 

 

 

 

 

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品在线极品| 亚洲成人黄色网址| 2019中文字幕全在线观看| 91精品中国老女人| 中文字幕日韩在线视频| 欧美成人午夜激情视频| 久久久久久久国产精品| 国产主播喷水一区二区| 欧美日韩国产丝袜美女| 精品国产成人在线| 免费97视频在线精品国自产拍| 国产精品久久久久久久9999| 久久精品成人欧美大片| 亚洲美女性视频| 色诱女教师一区二区三区| 国产精品久久久久久久久久久久| 欧美激情综合色综合啪啪五月| 国产日本欧美一区| 国产视频在线观看一区二区| 欧美亚洲第一区| 永久免费看mv网站入口亚洲| 欧美黑人巨大精品一区二区| 国产成人在线视频| 欧美激情乱人伦一区| 亚洲成人国产精品| 97免费视频在线播放| 成人激情视频在线播放| 精品国偷自产在线视频| 日韩欧美a级成人黄色| 日本精品中文字幕| 最近2019年手机中文字幕| 国产精品久久激情| 国产亚洲a∨片在线观看| 国产精品福利在线观看网址| 亚洲精品免费一区二区三区| 不卡av日日日| 精品丝袜一区二区三区| 欧美日韩日本国产| 国产精品美女主播在线观看纯欲| 久久久人成影片一区二区三区| 国产日产欧美a一级在线| 国内精品一区二区三区四区| 影音先锋欧美在线资源| 日本在线观看天堂男亚洲| 国产成人亚洲综合青青| 欧美成人性色生活仑片| 久久亚洲精品小早川怜子66| 欧美精品久久久久久久免费观看| 亚洲最新在线视频| 精品国产31久久久久久| 久久香蕉国产线看观看av| 欧美多人乱p欧美4p久久| 欧美俄罗斯乱妇| 日韩人体视频一二区| 精品欧美aⅴ在线网站| 亚洲精品xxx| 久久精品国产一区二区三区| 国产一区香蕉久久| 国产精品免费视频xxxx| 日韩中文av在线| 欧美成人精品影院| 亚洲午夜小视频| 欧美午夜激情在线| 91精品久久久久久久久久另类| 精品少妇一区二区30p| 日韩三级成人av网| 国产精品美女在线观看| 亚洲精品自拍偷拍| 亚洲bt欧美bt日本bt| 久久精视频免费在线久久完整在线看| 欧美在线一区二区三区四| 精品毛片三在线观看| 成人激情视频在线| 97**国产露脸精品国产| 精品无人区乱码1区2区3区在线| 亚洲精品乱码久久久久久按摩观| www.国产一区| 韩国精品久久久999| 色综合天天综合网国产成人网| 在线观看亚洲视频| 亚洲精品国产综合久久| 日韩视频精品在线| 精品久久久久久| 美女性感视频久久久| 88国产精品欧美一区二区三区| 久久精品2019中文字幕| 欧美日韩国产二区| 热re91久久精品国99热蜜臀| 亚洲欧美日韩中文视频| 亚洲第一区第二区| 国产手机视频精品| 亚洲综合成人婷婷小说| 色一情一乱一区二区| 成人国产在线视频| 国产精品久久在线观看| 国产99视频精品免视看7| 久久影视电视剧免费网站清宫辞电视| 成人午夜黄色影院| 538国产精品视频一区二区| 美女999久久久精品视频| 亚洲激情在线视频| 国产精品视频男人的天堂| 亚洲欧美另类在线观看| 久久国产天堂福利天堂| 亚洲xxxxx性| 97国产在线视频| 国内外成人免费激情在线视频| 日韩成人高清在线| 亚洲精品一区二区网址| 国产婷婷97碰碰久久人人蜜臀| 欧美激情精品久久久久久变态| 欧美体内谢she精2性欧美| 国产精品日韩欧美| 亚洲欧美日韩国产精品| 国产精品偷伦一区二区| 久久久这里只有精品视频| 全色精品综合影院| 久久国产精品影视| 久久手机精品视频| 日韩不卡在线观看| 欧美特黄级在线| 国产精品免费看久久久香蕉| 另类美女黄大片| 国产精品久久电影观看| 国产成人精品久久| 亚洲一区二区三区四区视频| 亚洲自拍偷拍视频| 日韩av电影在线播放| 中国china体内裑精亚洲片| 亚洲国产另类久久精品| 国产在线a不卡| 亚洲欧美日韩一区在线| 色噜噜狠狠狠综合曰曰曰88av| 91免费的视频在线播放| 国产国语刺激对白av不卡| 91在线直播亚洲| 亚洲精品综合精品自拍| 国产精品第8页| 91色在线视频| 国产精品久久久久7777婷婷| 都市激情亚洲色图| 亚洲成人久久久| 国产精品久久电影观看| 成人福利网站在线观看| 午夜精品久久久久久久男人的天堂| 超碰精品一区二区三区乱码| 亚洲欧美制服另类日韩| 7777精品视频| 国产日韩精品在线播放| 国语自产精品视频在免费| 国产成人高清激情视频在线观看| 国产一区二区三区四区福利| 亚洲国产成人爱av在线播放| 国产精品高潮在线| 国产精品久久久久久久久久三级| 久久99精品国产99久久6尤物| 欧美一级视频免费在线观看| 欧美综合激情网| 国产不卡av在线| 深夜福利一区二区| 欧洲美女免费图片一区| 在线播放国产一区中文字幕剧情欧美| 欧美性猛xxx| 欧美日韩一区二区三区在线免费观看|