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

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

IO流學習內容記錄

2019-11-14 11:49:16
字體:
來源:轉載
供稿:網友

輸入字節流:

| InputStream 所有輸入字節流的基類 抽象類 ————| FileInputStream 讀取文件數據的輸入字節流 

使用FileInputStream讀取文件數據的步驟: 1. 找到目標文件 2. 建立數據的輸入通道。 3. 讀取文件中的數據。 4. 關閉 資源.

注意點:read()方法返回的值講解:1、返回值為原本數據數據:read() 讀取一個字節的數據,把讀取的數據返回。如:int content = fileInputStream.read(); 2、返回值為字節數據的個數如果使用read讀取數據傳入字節數組,那么數據是存儲到字節數組中的,而這時候read方法的返回值是表示的是本次讀取了幾個字節數據到字節數組中。while((length = fileInputStream.read(buf))!=-1){ // read方法如果讀取到了文件的末尾,那么會返回-1表示。 System.out.PRint(new String(buf,0,length));}public class inputDemo1 { public static void main(String[] args) throws IOException { } private static void importDemo1() throws FileNotFoundException, IOException { //找到目標文件 File file = new File("/Users/liyunxiang/Desktop/1.txt"); System.out.println(file.exists()); //判斷文件是否存在 //建立數據輸入通道 FileInputStream fileInputStream = new FileInputStream(file); //建立緩沖數組配合循環讀取文件的數據。 int length = 0; //保存每次讀取到的字節個數。 //存儲讀取到的數據 緩沖數組 的長度一般是1024的倍數,因為與計算機的處理單位。 理論上緩沖數組越大,效率越高 byte[] buf = new byte[1024]; // 如果使用read讀取數據傳入字節數組,那么數據是存儲到字節數組中的, //而這時候read方法的返回值是表示的是本次讀取了幾個字節數據到字節數組中。 while((length = fileInputStream.read(buf))!=-1){ // read方法如果讀取到了文件的末尾,那么會返回-1表示。 System.out.print(new String(buf,0,length)); } //關閉資源 fileInputStream.close(); } }

問題: 讀取完一個文件的數據的時候,我不關閉資源有什么影響? 答案: 資源文件一旦 使用完畢應該馬上釋放,否則其他的程序無法對該資源文件進行其他 的操作。


輸出字節流:

——–| OutputStream 是所有輸出字節流 的父類。 抽象類 ———–| FileOutStream 向文件輸出數據的輸出字節流。

FileOutputStream如何使用呢? 1. 找到目標文件 2. 建立數據的輸出通道。 3. 把數據轉換成字節數組寫出。 4. 關閉資源

FileOutputStream要注意的細節: 1. 使用FileOutputStream 的時候,如果目標文件不存在,那么會自動創建目標文件對象。 2. 使用FileOutputStream寫數據的時候,如果目標文件已經存在,那么會先清空目標文件中的數據,然后再寫入數據。 3.使用FileOutputStream寫數據的時候, 如果目標文件已經存在,需要在原來數據基礎上追加數據的時候應該使用new FileOutputStream(file,true)構造函數,第二參數為true。 4.使用FileOutputStream的write方法寫數據的時候,雖然接收的是一個int類型的數據,但是真正寫出的只是一個字節的數據,只是 把低八位的二進制數據寫出,其他二十四位數據全部丟棄。 00000000-000000000-00000001-11111111 511 11111111---> -1 public class OutPutDemo { public static void main(String[] args) throws IOException { //找到目標文件 File file = new File("/Users/liyunxiang/Desktop/1.txt"); //建立數據輸出通道 FileOutputStream fileOutputStream = new FileOutputStream(file); //每次只能寫一個字節的數據出去。 fileOutputStream.write('h'); //使用字節數組把數據寫出。 String data = "hello world"; fileOutputStream.write(data.getBytes()); //使用字節數組把數據寫出。,0 從字節數組的指定索引值開始寫, 2:寫出兩個字節。 byte[] buf = data.getBytes(); fileOutputStream.write(buf,0,3); //關閉資源 fileOutputStream.close(); }}

需求: 利用輸入輸出流拷貝一張圖片

public class CopyImage { public static void main(String[] args) throws IOException { //找到目標文件 File inFile = new File("F://美女//1.jpg"); File destFile = new File("E://1.jpg"); //建立數據的輸入輸出通道 FileInputStream fileInputStream = new FileInputStream(inFile); FileOutputStream fileOutputStream = new FileOutputStream(destFile); //追加數據.... //每新創建一個FileOutputStream的時候,默認情況下FileOutputStream 的指針是指向了文件的開始的位置。 每寫出一次,指向都會出現相應移動。 //建立緩沖數據,邊讀邊寫 byte[] buf = new byte[1024]; int length = 0 ; while((length = fileInputStream.read(buf))!=-1){ //最后一次只剩下了824個字節 fileOutputStream.write(buf,0,length); //寫出很多次數據,所以就必須要追加。 } //關閉資源 原則: 先開后關,后開先關。 fileOutputStream.close(); fileInputStream.close(); }}

緩沖輸入字節流

我們清楚讀取文件數據使用緩沖數組讀取效率更高,sun也知道使用緩沖數組讀取效率更高,那么 這時候sun給我們提供了一個——緩沖輸入字節流對象,讓我們可以更高效率讀取文件。

輸入字節流體系:  —-| InputStream 輸入字節流的基類。 抽象 ———-| FileInputStream 讀取文件數據的輸入字節流 ———-| BufferedInputStream 緩沖輸入字節流 緩沖輸入字節流的出現主要是為了提高讀取文件數據的效率。 其實該類內部只不過是維護了一個8kb的字節數組而已。 

注意: 凡是緩沖流都不具備讀寫文件的能力。

使用BufferedInputStream的步驟 : 1. 找到目標文件。 2. 建立數據 的輸入通道 3. 建立緩沖 輸入字節流流 4. 關閉資源

public class Demo1 { public static void main(String[] args) throws IOException { readTest2(); } public static void readTest2() throws IOException{ //找到目標文件 File file = new File("F://a.txt"); FileInputStream fileInputStream= new FileInputStream(file); BufferedInputStream bufferedInputStream= new BufferedInputStream(fileInputStream); bufferedInputStream.read(); FileOutputStream fileOutputStream= new FileOutputStream(file); BufferedOutputStream bufferedOutputStream= new BufferedOutputStream(fileOutputStream); fileOutputStream.write(null); //讀取文件數據 int content = 0 ; //疑問二:BufferedInputStream出現 的目的是了提高讀取文件的效率,但是BufferedInputStream的read方法每次讀取一個字節的數據 //而FileInputStreram每次也是讀取一個字節的數據,那么BufferedInputStream效率高從何而來? while((content = fileInputStream.read())!=-1){ System.out.print((char)content); } //關閉資源 bufferedInputStream.close();//調用BufferedInputStream的close方法實際上關閉的是FileinputStream. } //讀取文件的時候我們都是使用緩沖數組讀取。效率會更加高 public static void readTest() throws IOException{ File file = new File("/Users/liyunxiang/Desktop/1.txt"); //建立數組通道 FileInputStream fileInputStream = new FileInputStream(file); //建立緩沖數組讀取數據 byte[] buf = new byte[1024*8]; int length = 0; while((length = fileInputStream.read(buf))!=-1){ System.out.print(new String(buf,0,length)); } //關閉資源 fileInputStream.close(); }}

輸出字節流

——–| OutputStream 所有輸出字節流的基類 抽象類 ————| FileOutputStream 向文件 輸出數據 的輸出字節流 ————| Bufferedoutputstream 緩沖輸出字節流 BufferedOutputStream出現的目的是為了提高寫數據的效率。  內部也是維護了一個8kb的字節數組而已。

使用BufferedOutputStream的步驟: 1. 找到目標文件 2. 建立數據的輸出通道

BufferedOutputStream 要注意的細節 1. 使用BufferedOutStream寫數據的時候,它的write方法是是先把數據寫到它內部維護的字節數組中。 2. 使用BufferedOutStream寫數據的時候,它的write方法是是先把數據寫到它內部維護的字節數組中,如果需要把數據真正的寫到硬盤上面,需要 調用flush方法或者是close方法、 或者是內部維護的字節數組已經填滿數據的時候。

public class Demo2 { public static void main(String[] args) throws IOException { //找到目標文件 File file = new File("/Users/liyunxiang/Desktop/1.txt"); //建立數據的輸出通道 FileOutputStream fileOutputStream = new FileOutputStream(file); //建立緩沖輸出字節流對象 BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream); //把數據寫出 bufferedOutputStream.write("hello world".getBytes()); //把緩沖數組中內部的數據寫到硬盤上面。 //bufferedOutputStream.flush(); bufferedOutputStream.close(); }}

使用緩沖輸入輸出字節流拷貝一個圖片

public class CopyImage { public static void main(String[] args) throws IOException { //找到目標文件 File inFile = new File("F://美女//1.jpg"); File outFile = new File("E://1.jpg"); //建立數據輸入輸出通道 FileInputStream fileInputStream = new FileInputStream(inFile); FileOutputStream fileOutputStream = new FileOutputStream(outFile); //建立緩沖輸入輸出流 BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream); BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream); //邊讀邊寫 int content = 0; // int length = bufferedInputStream.read(buf); 如果傳入了緩沖數組,內容是存儲到緩沖數組中,返回值是存儲到緩沖數組中的字節個數。 while((content = bufferedInputStream.read())!=-1){ // 如果使用read方法沒有傳入緩沖數組,那么返回值是讀取到的內容。 bufferedOutputStream.write(content);// bufferedOutputStream.flush(); } //關閉資源 bufferedInputStream.close(); bufferedOutputStream.close(); }}

IO異常 的處理

package cn.itcast.exception;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import javax.management.RuntimeErrorException;/* IO異常 的處理 */public class Demo1 { public static void main(String[] args) { // readTest(); copyImage(); } // 拷貝圖片 public static void copyImage() { FileInputStream fileInputStream = null; FileOutputStream fileOutputStream = null; try { // 找到目標文件 File inFile = new File("F://美女//1.jpg"); File outFile = new File("E://1.jpg"); // 建立輸入輸出通道 fileInputStream = new FileInputStream(inFile); fileOutputStream = new FileOutputStream(outFile); // 建立緩沖數組,邊讀邊寫 byte[] buf = new byte[1024]; int length = 0; while ((length = fileInputStream.read(buf)) != -1) { fileOutputStream.write(buf, 0, length); } } catch (IOException e) { System.out.println("拷貝圖片出錯..."); throw new RuntimeException(e); } finally { // 關閉資源 try { if (fileOutputStream != null) { fileOutputStream.close(); System.out.println("關閉輸出流對象成功..."); } } catch (IOException e) { System.out.println("關閉輸出流資源失敗..."); throw new RuntimeException(e); } finally { if (fileInputStream != null) { try { fileInputStream.close(); System.out.println("關閉輸入流對象成功..."); } catch (IOException e) { System.out.println("關閉輸入流對象失敗..."); throw new RuntimeException(e); } } } } } public static void readTest() { FileInputStream fileInputStream = null; try { // 找到目標文件 File file = new File("F://aaaaa.txt"); // 建立數據輸入通道 fileInputStream = new FileInputStream(file); // 建立緩沖數組讀取數據 byte[] buf = new byte[1024]; int length = 0; while ((length = fileInputStream.read(buf)) != -1) { System.out.print(new String(buf, 0, length)); } } catch (IOException e) { /* * //處理的代碼... 首先你要阻止后面的代碼執行,而且要需要通知調用者這里出錯了... throw new * RuntimeException(e); * //把IOException傳遞給RuntimeException包裝一層,然后再拋出,這樣子做的目的是 * 為了讓調用者使用變得更加靈活。 */ System.out.println("讀取文件資源出錯...."); throw new RuntimeException(e); } finally { try { if (fileInputStream != null) { fileInputStream.close(); System.out.println("關閉資源成功..."); } } catch (IOException e) { System.out.println("關閉資源失敗..."); throw new RuntimeException(e); } } }}

輸入字符流

字節流:字節流讀取的是文件中的二進制數據,讀到的數據并不會幫你轉換成你看得懂的字符。 

字符流: 字符流會把讀取到的二進制的數據進行對應 的編碼與解碼工作。 字符流 = 字節流 + 編碼(解碼)

輸入字符流: ———-| Reader 輸入字符流的基類 抽象類 ————-| FileReader 讀取文件的輸入字符流。

FileReader的用法: 1. 找到目標文件 2. 建立數據的輸入通道 3. 讀取數據 4. 關閉資源

public class Demo2 { public static void main(String[] args) throws IOException { readTest2(); } //使用緩沖字符數組讀取文件。 public static void readTest2() throws IOException{ //找到目標文件 File file = new File(“/Users/liyunxiang/Desktop/1.txt“); // 建立數據的輸入通道 FileReader fileReader = new FileReader(file); //建立緩沖字符數組讀取文件數據 char[] buf = new char[1024]; int length = 0 ; while((length = fileReader.read(buf))!=-1){ System.out.print(new String(buf,0,length)); } } public static void readTest1() throws IOException{ //找到目標文件 File file = new File("/Users/liyunxiang/Desktop/1.txt"); //建立數據的輸入通道 FileReader fileReader = new FileReader(file); int content = 0 ; while((content = fileReader.read())!=-1){ //每次只會讀取一個字符,效率低。 System.out.print((char)content); } //關閉資源 fileReader.close(); }}

輸出字符流

輸出字符流:

——| Writer 輸出字符流的基類。 抽象類 ———–| FileWriter 向文件數據數據的輸出字符流

FileWriter的使用步驟: 1. 找到目標文件。 2. 建立數據輸出通道 3. 寫出數據。 4. 關閉資源

FileWriter要注意的事項: 1. 使用FileWriter寫數據的時候,FileWriter內部是維護了一個1024個字符數組的,寫數據的時候會先寫入到它內部維護的字符數組中,如果需要 把數據真正寫到硬盤上,需要調用flush或者是close方法或者是填滿了內部的字符數組。 2. 使用FileWriter的時候,如果目標文件不存在,那么會自動創建目標文件。 3.使用FileWriter的時候, 如果目標文件已經存在了,那么默認情況會先情況文件中的數據,然后再寫入數據 , 如果需要在原來的基礎上追加數據, 需要使用“new FileWriter(File , boolean)”的構造方法,第二參數為true。

public class Demo1 { public static void main(String[] args) throws IOException { writeTest1(); } public static void writeTest1() throws IOException{ //找到目標文件 File file = new File("F://a.txt"); //建立數據輸出通道 FileWriter fileWriter = new FileWriter(file,true); //準備數據,把數據寫出 String data = "今天天氣非常好??!"; fileWriter.write(data); //字符流具備解碼的功能。 //刷新字符流// fileWriter.flush(); //關閉資源 fileWriter.close(); }}//使用字符流拷貝文件public class Copy { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new FileReader("F://Test.txt")); BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("E://Test.exe")); String line=null; while((line = bufferedReader.readLine())!=null){ bufferedWriter.write(line); } bufferedWriter.close(); bufferedReader.close(); }}

緩沖輸入字符流

輸入字符流: ——-| Reader 所有輸入字符流的基類。 抽象類 ———-| FileReader 讀取文件字符串的輸入字符流。 ———-| BufferedReader 緩沖輸入字符流 。 緩沖 輸入字符流出現的目的是為了提高讀取文件 的效率和拓展了FileReader的功能。 其實該類內部也是維護了一個字符數組

記?。壕彌_流都不具備讀寫文件的能力。

BufferedReader的使用步驟: 1.找到目標文件 2 .建立數據的輸入通道。

public static void readTest1() throws IOException{ //找到目標文件 File file = new File("F://a.txt"); //建立數據的輸入通道。 FileReader fileReader = new FileReader(file); //建立緩沖輸入字符流 BufferedReader bufferedReader = new BufferedReader(fileReader); //讀取數據 /*int content = bufferedReader.read(); //讀到了一個字符。 讀取到的字符肯定也是從Bufferedreader內部的字符數組中獲取的到。所以效率高。 System.out.println((char)content);*/ //使用BUfferedReader拓展的功能,readLine() 一次讀取一行文本,如果讀到了文件的末尾返回null表示。 String line = null; while((line = bufferedReader.readLine())!=null){ // 雖然readLine每次讀取一行數據,但是但會的line是不包含/r/n的、 System.out.println(Arrays.toString("aaa".getBytes())); } //關閉資源 bufferedReader.close(); }}

緩沖輸出字符流

輸出字符流 ———-| Writer 所有輸出字符流的基類, 抽象類。 ————— | FileWriter 向文件輸出字符數據的輸出字符流。  —————-| BufferedWriter 緩沖輸出字符流 緩沖輸出字符流作用: 提高FileWriter的寫數據效率與拓展FileWriter的功能。 BufferedWriter內部只不過是提供了一個8192長度的字符數組作為緩沖區而已,拓展了FileWriter的功能。

BufferedWriter如何使用? 1. 找到目標文件 2. 建立數據的輸出通道

public class Demo2 { public static void main(String[] args) throws IOException { //找到目標文件 File file = new File("F://a.txt"); //建立數據的輸出通道 FileWriter fileWriter = new FileWriter(file,true); //建立緩沖輸出流對象 BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); //寫出數據// bufferedWriter.newLine(); //newLine() 換行。 實際上就是想文件輸出/r/n. bufferedWriter.write("/r/n"); bufferedWriter.write("前兩天李克強來蘿崗!!"); //關閉資源 bufferedWriter.flush();// bufferedWriter.close(); }}

練習: 緩沖輸入輸出字符流用戶登陸注冊…

public class Login { static Scanner scanner = new Scanner(System.in); public static void main(String[] args) throws IOException { while(true){ System.out.println("請選擇功能: A(注冊) B(登陸)"); String option = scanner.next(); if("a".equalsIgnoreCase(option)){ //注冊 reg(); }else if("b".equalsIgnoreCase(option)){ //登陸 login(); }else{ System.out.println("你的輸入有誤,請重新輸入..."); } } } //登陸 public static void login() throws IOException{ System.out.println("請輸入用戶名:"); String userName = scanner.next(); System.out.println("請 輸入密碼:"); String passWord = scanner.next(); String info = userName+" "+ password; //讀取文件的信息,查看是否有該用戶的信息存在,如果存在則登陸成功。 //建立數據的輸入通道 //建立緩沖輸入字符流 BufferedReader bufferedReader = new BufferedReader(new FileReader("F://users.txt")); String line = null; boolean isLogin = false; // 用于記錄是否登陸成功的標識, 默認是登陸失敗的。 //不斷的讀取文件的內容 while((line = bufferedReader.readLine())!=null){ if(info.equals(line)){ isLogin = true; break; } } if(isLogin){ System.out.println("歡迎"+userName+"登陸成功..."); }else{ System.out.println("不存在該用戶信息,請注冊!!"); } } //注冊 public static void reg() throws IOException{ System.out.println("請輸入用戶名:"); String userName = scanner.next(); System.out.println("請 輸入密碼:"); String password = scanner.next(); String info = userName+" "+ password; //把用戶的注冊的信息寫到文件上 File file = new File("F://users.txt"); FileWriter fileWriter = new FileWriter(file,true); //建立緩沖輸出字符流 BufferedWriter bufferedWriter = new BufferedWriter(fileWriter); //把用戶信息寫出 bufferedWriter.write(info); bufferedWriter.newLine(); //關閉資源 bufferedWriter.close(); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品av在线播放| 亚洲在线观看视频网站| 亚洲视频网站在线观看| 亚洲精品欧美一区二区三区| 国产精品视频精品| 正在播放欧美视频| 欧美性色19p| 欧美日韩亚洲一区二| 亚洲精品国产拍免费91在线| 1769国产精品| 亚洲美女在线观看| 国内外成人免费激情在线视频网站| 成人日韩在线电影| 国产精品久久久久久久久久久久久久| 青青在线视频一区二区三区| 久久久综合免费视频| 欧美精品aaa| 亚洲欧美制服综合另类| 国产精品成人va在线观看| 中文字幕精品一区二区精品| 欧美性色视频在线| 久久久久久久一| 亚洲国产欧美一区二区三区久久| 成人有码视频在线播放| 91精品久久久久久久久久久久久久| 粉嫩老牛aⅴ一区二区三区| 亚洲天堂av在线免费观看| 性色av一区二区咪爱| 亚州精品天堂中文字幕| 成人久久久久久久| 亚洲国产精品va在看黑人| 亚洲精品一区二区久| 中文字幕亚洲无线码在线一区| 亚洲一区二区三区四区在线播放| 日韩欧美精品免费在线| 8x拔播拔播x8国产精品| 国内精品久久久久久久久| 最近的2019中文字幕免费一页| 精品国产乱码久久久久久天美| 欧美成人四级hd版| 成人97在线观看视频| 米奇精品一区二区三区在线观看| 91免费视频网站| 亚洲欧美日韩第一区| 欧美成人小视频| 日韩精品一区二区视频| 在线精品国产成人综合| 久久99热精品这里久久精品| 亚洲国产精品va在线看黑人动漫| 久久久久99精品久久久久| 国产精品美乳在线观看| 亚洲综合大片69999| 国产亚洲成av人片在线观看桃| 欧美三级欧美成人高清www| 国产精品视频免费在线| 国产91精品网站| 最近2019中文免费高清视频观看www99| 亚洲欧美激情另类校园| 久久精品在线视频| 国产精品精品一区二区三区午夜版| 国产成人一区二区三区| 成人免费网视频| 91在线高清免费观看| 欧美激情va永久在线播放| 日韩精品视频中文在线观看| 亚洲美女喷白浆| 国产精品久久久久久一区二区| 日本一区二区在线免费播放| 欧美性色19p| 日韩在线观看av| 国产成人综合精品| 91精品久久久久久久久青青| 国产成人欧美在线观看| 不卡av电影在线观看| 亚洲a级在线观看| 日韩精品福利在线| 久久久欧美一区二区| 久久精品国产亚洲精品| 欧美色视频日本高清在线观看| 日韩美女视频免费在线观看| 久久在精品线影院精品国产| 成人女保姆的销魂服务| 欧美极品欧美精品欧美视频| 97不卡在线视频| 亚洲最大中文字幕| 亚洲欧美日韩网| 亚洲国产第一页| 国产成人拍精品视频午夜网站| 91精品久久久久久久久青青| 91精品久久久久久综合乱菊| 国产成人精品日本亚洲专区61| 中文字幕国产精品| 国产黑人绿帽在线第一区| 日韩精品在线观看一区二区| 亚洲欧洲偷拍精品| 午夜精品久久久久久久99黑人| 日韩天堂在线视频| 色哟哟入口国产精品| 国产一区二区三区久久精品| 欧美一级bbbbb性bbbb喷潮片| 精品久久久一区| 国产亚洲欧美一区| 日韩美女在线看| 国内伊人久久久久久网站视频| 国产精品久久久久久久久久小说| 亚洲国产日韩欧美在线动漫| 欧美激情久久久久| 日韩欧美高清视频| 精品国产乱码久久久久酒店| 欧美肥婆姓交大片| 欧美俄罗斯乱妇| 欧美巨猛xxxx猛交黑人97人| 久久在线精品视频| 国产精品黄色影片导航在线观看| 精品magnet| 日韩免费av一区二区| 少妇精69xxtheporn| 日韩精品极品视频免费观看| 久久久久久国产精品| 亚洲黄色片网站| 国产精品久久久久免费a∨大胸| 国内精品久久久久影院优| 激情av一区二区| 国产日韩精品一区二区| 日本欧美在线视频| 欧美日韩爱爱视频| 久久久久久香蕉网| 亚洲性日韩精品一区二区| 性欧美xxxx视频在线观看| 中文字幕一区日韩电影| 日韩亚洲欧美中文在线| 国产免费一区二区三区在线观看| 国内成人精品一区| 91色在线观看| 亚洲国内精品在线| 久久免费国产视频| 亚洲精品美女在线| 国产经典一区二区| 成人网在线免费看| 国产精品揄拍一区二区| 中文字幕一精品亚洲无线一区| 91高清在线免费观看| 日韩a**站在线观看| 精品日韩美女的视频高清| 日韩黄色在线免费观看| 韩剧1988在线观看免费完整版| 欧美老少做受xxxx高潮| 亚洲国产私拍精品国模在线观看| 97视频在线观看成人| 亚洲美女又黄又爽在线观看| 欧洲永久精品大片ww免费漫画| 国产欧美精品日韩精品| 欧美洲成人男女午夜视频| 美女福利精品视频| 国产精品久久久av| 91精品久久久久久久| 中文字幕精品久久| 国产成人在线一区| 2019中文字幕全在线观看| 国内偷自视频区视频综合| 日本精品一区二区三区在线播放视频| 亚洲人成亚洲人成在线观看| 亚洲精品视频在线观看视频| 欧美日韩精品中文字幕|