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

一文讓你讀懂JAVA.IO、字符編碼

開發 后端
本篇給大家介紹JAVA.IO、字符編碼,希望對你有所幫助。

 1 JAVA.IO字節流

inputstream.png

  • LineNumberInputStream和StringBufferInputStream官方建議不再使用,推薦使用LineNumberReader和StringReader代替
  • ByteArrayInputStream和ByteArrayOutputStream 字節數組處理流,在內存中建立一個緩沖區作為流使用,從緩存區讀取數據比從存儲介質(如磁盤)的速率快
  1. //用ByteArrayOutputStream暫時緩存來自其他渠道的數據 
  2. ByteArrayOutputStream data = new ByteArrayOutputStream(1024); //1024字節大小的緩存區 
  3. data.write(System.in.read()); // 暫存用戶輸入數據 
  4.  
  5. //將data轉為ByteArrayInputStream 
  6. ByteArrayInputStream in = new ByteArrayInputStream(data.toByteArray()); 

  • FileInputStream和FileOutputStream 訪問文件,把文件作為InputStream,實現對文件的讀寫操作
  • ObjectInputStream和ObjectOutputStream 對象流,構造函數需要傳入一個流,實現對JAVA對象的讀寫功能;可用于序列化,而對象需要實現Serializable接口
  1. //java對象的寫入 
  2. FileOutputStream fileStream = new FileOutputStream("example.txt"); 
  3. ObjectOutputStream out = new ObjectOutputStream(fileStream); 
  4. Example example = new Example(); 
  5. out.writeObject(example); 
  6.  
  7. //java對象的讀取 
  8. FileInputStream fileStream = new FileInputStream("example.txt"); 
  9. ObjectInputStream in = new ObjectInputStream(fileStream); 
  10. Example = (Example) in.readObject(); 
  • PipedInputStream和PipedOutputStream 管道流,適用在兩個線程中傳輸數據,一個線程通過管道輸出流發送數據,另一個線程通過管道輸入流讀取數據,實現兩個線程間的數據通信
  1. // 創建一個發送者對象 
  2. Sender sender = new Sender(); // 創建一個接收者對象 
  3. Receiver receiver = new Receiver(); // 獲取輸出管道流 
  4. // 獲取輸入輸出管道流 
  5. PipedOutputStream outputStream = sender.getOutputStream();  
  6. PipedInputStream inputStream = receiver.getInputStream(); 
  7. // 鏈接兩個管道,這一步很重要,把輸入流和輸出流聯通起來   
  8. outputStream.connect(inputStream); 
  9. sender.start();// 啟動發送者線程 
  10. receiver.start();// 啟動接收者線程 
  • SequenceInputStream 把多個InputStream合并為一個InputStream,允許應用程序把幾個輸入流連續地合并起來
  1. InputStream in1 = new FileInputStream("example1.txt"); 
  2. InputStream in2 = new FileInputStream("example2.txt"); 
  3. SequenceInputStream sequenceInputStream = new SequenceInputStream(in1, in2); 
  4. //數據讀取 
  5. int data = sequenceInputStream.read(); 
  • FilterInputStream和FilterOutputStream 使用了裝飾者模式來增加流的額外功能,子類構造參數需要一個InputStream/OutputStream
  1. ByteArrayOutputStream out = new ByteArrayOutputStream(2014); 
  2. //數據寫入,使用DataOutputStream裝飾一個InputStream 
  3. //使用InputStream具有對基本數據的處理能力 
  4. DataOutputStream dataOut = new DataOutputStream(out); 
  5. dataOut.writeDouble(1.0); 
  6. //數據讀取 
  7. ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 
  8. DataInputStream dataIn = new DataInputStream(in); 
  9. Double data = dataIn.readDouble(); 
  • DataInputStream和DataOutputStream (Filter流的子類) 為其他流附加處理各種基本類型數據的能力,如byte、int、String
  • BufferedInputStream和BufferedOutputStream (Filter流的子類) 為其他流增加緩沖功能
  • PushBackInputStream (FilterInputStream子類) 推回輸入流,可以把讀取進來的某些數據重新回退到輸入流的緩沖區之中
  • PrintStream (FilterOutputStream子類) 打印流,功能類似System.out.print

 2 JAVA.IO字符流

21.png 

  • 從字節流和字符流的導向圖來,它們之間是相互對應的,比如CharArrayReader和ByteArrayInputStream
  • 字節流和字符流的轉化:InputStreamReader可以將InputStream轉為Reader,OutputStreamReader可以將OutputStream轉為Writer
  1. //InputStream轉為Reader 
  2. InputStream inputStream = new ByteArrayInputStream("程序".getBytes()); 
  3. InputStreamReader reader = new InputStreamReader(inputStream, StandardCharsets.UTF_8); 
  4. //OutputStream轉為Writer 
  5. OutputStream out = new FileOutputStream("example.txt"); 
  6. OutputStreamWriter writer = new OutputStreamWriter(out); 
  7. //以字符為單位讀寫 
  8. writer.write(reader.read(new char[2])); 
  • 區別:字節流讀取單位是字節,字符流讀取單位是字符;一個字符由字節組成,如變字長編碼UTF-8是由1~4個字節表示

3 亂碼問題和字符流

  • 字符以不同的編碼表示,它的字節長度(字長)是不一樣的。如“程”的utf-8編碼格式,由[-25][-88][-117]組成。而ISO_8859_1編碼則是單個字節[63]
  • 平時工作對資源的操作都是面向字節流的,然而數據資源根據不同的字節編碼轉為字節時,它們的內容是不一樣,容易造成亂碼問題
  • 兩種出現亂碼場景 encode和decode使用的字符編碼不一致:資源使用UTF-8編碼,而在代碼里卻使用GBK解碼打開使用字節流讀取字節數不符合字符規定字長:字符是由字節組成的,比如“程”的utf-8格式是三個字節;如果在InputStream里以每兩個字節讀取流,再轉為String(java默認編碼是utf-8),此時會出現亂碼(半個中文,你猜是什么)
  1. ByteArrayInputStream in = new ByteArrayInputStream("程序大法好".getBytes()); 
  2. byte[] buf = new byte[2]; //讀取流的兩個字節 
  3. in.read(buf); //讀取數據 
  4. System.out.println(new String(buf)); //亂碼 
  5. ---result----  
  6. �  //亂碼 

  • 亂碼場景1,知道資源的字符編碼,就可以使用對應的字符編碼來解碼解決
  • 亂碼場景2,可以一次性讀取所有字節,再一次性編碼處理。但是對于大文件流,這是不現實的,因此有了字符流的出現
  • 字節流使用InputStreamReader、OutputStreamReader轉化為字符流,其中可以指定字符編碼,再以字符為單位來處理,可解決亂碼
  1. InputStreamReader reader =  
  2.       new InputStreamReader(inputStream, StandardCharsets.UTF_8); 

4 字符集和字符編碼的概念區分

  • 字符集和字符編碼的關系,字符集是規范,字符編碼是規范的具體實現;字符集規定了符號和二進制代碼值的唯一對應關系,但是沒有指定具體的存儲方式;
  • unicode、ASCII、GB2312、GBK都是字符集;其中ASCII、GB2312、GBK既是字符集也是字符編碼;注意不混淆這兩者區別;而unicode的具體實現有UTF-8,UTF-16,UTF-32
  • 最早出現的ASCII碼是使用一個字節(8bit)來規定字符和二進制映射關系,標準ASCII編碼規定了128個字符,在英文的世界,是夠用的。但是中文,日文等其他文字符號怎么映射呢?因此其他更大的字符集出現了
  • unicode(統一字符集),早期時它使用2個byte表示1個字符,整個字符集可以容納65536個字符。然而仍然不夠用,于是擴展到4個byte表示一個字符,現支持范圍是U+010000~U+10FFFF
  • unicode是兩個字節的說法是錯誤的;UTF-8是變字長的,需要用1~4個字節存儲;UTF-16一般是兩個字節(U+0000~U+FFFF范圍),如果遇到兩個字節存不下,則用4個字節;而UTF-32是固定四個字節
  • unicode表示的字符,會用“U+”開頭,后面跟著十六進制的數字,如“字”的編碼就是U+5B57
  • UTF-8 編碼和unicode字符集

范圍 Unicode(Binary) UTF-8編碼(Binary) UTF-8編碼byte長度 U+0000~U+007F 00000000 00000000 00000000 0XXXXXXX 0XXXXXX 1 U+0080~U+07FF 00000000 00000000 00000YYY YYXXXXXX 110YYYYY 10XXXXXX 2 U+0800~U+FFFF 00000000 00000000 ZZZZYYYY YYXXXXXX 1110ZZZZ 10YYYYYY 10XXXXXX 3 U+010000~U+10FFFF 00000000 000AAAZZ ZZZZYYYY YYXXXXXX 11110AAA 10ZZZZZZ 10YYYYYY 10XXXXXX 4

  • 程序是分內碼和外碼,java的默認編碼是UTF-8,其實指的是外碼;內碼傾向于使用定長碼,和內存對齊一個原理,便于處理。外碼傾向于使用變長碼,變長碼將常用字符編為短編碼,罕見字符編為長編碼,節省存儲空間與傳輸帶寬
  • JDK8的字符串,是使用char[]來存儲字符的,char是兩個字節大小,其中使用的是UTF-16編碼(內碼)。而unicode規定的中文字符在U+0000~U+FFFF內,因此使用char(UTF-16編碼)存儲中文是不會出現亂碼的
  • JDK9后,字符串則使用byte[]數組來存儲,因為有一些字符一個char已經存不了,如emoji表情字符,使用字節存儲字符串更容易拓展
  • JDK9,如果字符串的內容都是ISO-8859-1/Latin-1字符(1個字符1字節),則使用ISO-8859-1/Latin-1編碼存儲字符串,否則使用UTF-16編碼存儲數組(2或4個字節)
  1. System.out.println(Charset.defaultCharset()); //輸出java默認編碼 
  2. for (byte item : "程序".getBytes(StandardCharsets.UTF_16)) { 
  3.     System.out.print("[" + item + "]"); 
  4. System.out.println(""); 
  5. for (byte item : "程序".getBytes(StandardCharsets.UTF_8)) { 
  6.     System.out.print("[" + item + "]"); 
  7. ----result---- 
  8. UTF-8       //java默認編碼UTF-8 
  9. [-2][-1][122][11][94][-113] //UTF_16:6個字節? 
  10. [-25][-88][-117][-27][-70][-113] //UTF_8:6個字節 正常 
  • “程序”的UTF-16編碼竟是輸出6個字節,多出了兩個字節,這是什么情況?再試試一個字符的輸
  1. for (byte item : "程".getBytes(StandardCharsets.UTF_16)) { 
  2.     System.out.print("[" + item + "]"); 
  3. ---result-- 
  4. [-2][-1][122][11] 

  • 可以看出UTF-16編碼的字節是多了[-2][-1]兩個字節,十六進制是0xFEFF。而它用來標識編碼順序是Big endian還是Little endian。以字符'中'為例,它的unicode十六進制是4E2D,存儲時4E在前,2D在后,就是Big endian;2D在前,4E在后,就是Little endian。FEFF表示存儲采用Big endian,FFFE表示使用Little endian
  • 為什么UTF-8沒有字節序的問題呢?個人看法,因為UTF-8是變長的,由第一個字節的頭部的0、110、1110、11110判斷是否需后續幾個字節組成字符,使用Big endian易讀取處理,反過來不好處理,因此強制用Big endian
  • 其實感覺UTF-16可以強制規定用Big endian;但這其中歷史問題。。。

 【編輯推薦】

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-03-05 09:10:19

base64編碼

2022-09-29 10:26:59

iOSScaffoldflutter

2021-08-04 16:06:45

DataOps智領云

2023-12-22 19:59:15

2024-01-29 00:28:01

2022-09-22 09:00:46

CSS單位

2025-04-03 10:56:47

2022-11-06 21:14:02

數據驅動架構數據

2018-09-28 14:06:25

前端緩存后端

2025-05-21 09:32:28

2023-11-27 17:35:48

ComponentWeb外層

2022-07-05 06:30:54

云網絡網絡云原生

2023-05-20 17:58:31

低代碼軟件

2022-10-20 08:01:23

2022-12-01 17:23:45

2021-12-29 18:00:19

無損網絡網絡通信網絡

2025-10-14 09:01:20

2022-07-26 00:00:03

語言模型人工智能

2025-02-28 06:35:47

點贊
收藏

51CTO技術棧公眾號

毛片av在线| 国产精品欧美激情在线| 免费看成人吃奶视频在线| 日本韩国一区二区| 亚洲日本精品| 亚洲精品一区二区三区四区| 久久久久久夜| 欧美成人激情视频| 人妻熟女aⅴ一区二区三区汇编| aaaa欧美| 午夜日韩在线电影| 亚洲高清视频一区| 国产成人无码www免费视频播放| 欧美专区18| 欧美成人一二三| xxxx日本黄色| 国产精品香蕉| 欧美最猛性xxxxx直播| 天天做天天躁天天躁| 黄色在线观看网| 成人av在线影院| 国产精品自在线| 黑人精品无码一区二区三区AV| 888久久久| 国产亚洲精品成人av久久ww| 中文字幕在线国产| 婷婷激情成人| 欧美午夜理伦三级在线观看| 国产免费观看高清视频| 1stkiss在线漫画| 国产精品久久网站| 欧美日韩国产三区| 天堂av资源网| 国产福利一区二区三区视频在线| 国产精品麻豆va在线播放| 韩国av免费观看| 欧美久久一区| 久久伊人精品天天| 亚洲a∨无码无在线观看| 亚洲精品亚洲人成在线观看| 亚洲成avwww人| 亚洲第一区第二区第三区| jizz亚洲女人高潮大叫| 日韩欧美在线播放| 日本www在线播放| 人妖欧美1区| 亚洲乱码国产乱码精品精98午夜| 在线观看欧美亚洲| 免费在线看黄| 国产精品不卡视频| 在线观看免费91| 91短视频版在线观看www免费| 久久女同互慰一区二区三区| 精品日韩电影| 日韩国产福利| 久久蜜桃av一区二区天堂 | 最新中文字幕久久| 91网页在线观看| 国产精品天美传媒| 婷婷精品国产一区二区三区日韩| 国产在线免费观看| 国产欧美一区二区在线观看| 日韩欧美一区二区视频在线播放 | 久久久91精品国产| 精品国产视频在线观看| 青春草在线视频| 中文字幕国产一区| 不卡中文字幕在线| 免费黄网站在线| 一区二区三区丝袜| 少妇大叫太大太粗太爽了a片小说| 香蕉久久aⅴ一区二区三区| 一区二区三区资源| 精品久久久久久无码中文野结衣| caoprom在线| 一本到三区不卡视频| 日韩欧美xxxx| 在线成人免费| 精品免费99久久| 亚洲天堂资源在线| 精品欧美激情在线观看| 久久精品99久久久香蕉| 精品少妇一二三区| 香蕉精品999视频一区二区| 国产精品久久久久久久久久久新郎 | 国产精品久久久久久久久久三级 | 日韩精品在线看片z| youjizz.com日本| 亚洲人成网77777色在线播放| 中文字幕国内精品| 精品午夜福利视频| 六月丁香综合| 91精品在线影院| 亚洲免费黄色片| 26uuu精品一区二区| 一区二区三区视频| 波多野结衣久久| 在线免费观看一区| 亚洲911精品成人18网站| 亚洲人成网亚洲欧洲无码| 精品激情国产视频| 一区二区三区视频免费看| 蜜臀久久99精品久久久久宅男 | 日本激情视频在线| 日本亚州欧洲精品不卡| 亚洲石原莉奈一区二区在线观看| 成人免费精品动漫网站| 欧美专区18| 国产精品国模大尺度私拍| 高清av在线| 午夜精品久久久久久| 爱爱爱爱免费视频| 亚洲人成网亚洲欧洲无码| 美日韩在线视频| 日韩欧美一级大片| 成人av资源网站| 黄色小视频大全| 精品日本视频| 亚洲美女激情视频| 麻豆91精品91久久久| 蜜桃一区二区三区在线| 久久久久久九九| 欧美巨大xxxx做受沙滩| 欧美精品日韩一本| 天天躁日日躁aaaa视频| 在线日本高清免费不卡| 91夜夜未满十八勿入爽爽影院| 国产在线观看免费网站| 亚洲成人av电影| 女人扒开双腿让男人捅| 色综合蜜月久久综合网| 国产精品91久久久久久| 污污网站在线免费观看| 亚洲一区在线看| 色黄视频免费看| 日本一区二区三区视频| 日韩av电影国产| 无码国产色欲xxxx视频| 亚洲韩国一区二区三区| 性折磨bdsm欧美激情另类| 天天射综合网视频| 国产女同一区二区| youjizz在线播放| 在线观看视频欧美| 精品国产aaa| 视频一区二区欧美| 青青成人在线| 午夜无码国产理论在线| 亚洲欧美成人网| 精品国产乱子伦| 国产欧美中文在线| 亚洲欧美自拍另类日韩| 久久激情电影| 成人美女免费网站视频| 欧美jizzhd欧美| 91精品国产手机| www.xxxx日本| 成人精品国产福利| 黄色一级在线视频| 性欧美lx╳lx╳| 日韩免费av一区二区| 北岛玲一区二区三区| 欧美日韩国产影片| 欧美成人三级视频| 成人av网站免费| 97国产在线播放| 精品国产成人| 国产在线播放不卡| 青草在线视频| 亚洲精品资源美女情侣酒店| 精品久久久久久久久久久国产字幕| 国产欧美日韩精品a在线观看| 天堂一区在线观看| 欧美阿v一级看视频| 国产欧美一区二区三区另类精品 | 内射中出日韩无国产剧情| 亚洲一区二区动漫| 视频一区三区| 免费一级欧美在线大片| 91精品国产高清久久久久久91| 桃花色综合影院| 欧美日韩性生活| 久久久国产精华液| 久久精品人人做人人爽97| 日韩一区二区三区久久| 欧美日韩精品一本二本三本 | 欧美成人高清| 欧美成人在线免费观看| 日韩欧国产精品一区综合无码| 色综合色综合网色综合| 嫩草精品影院| 欧美一区二区三区在线观看视频| 日韩欧美三级视频| 国产精品国产三级国产aⅴ中文| 在线xxxxx| 免费在线成人网| 久久久久久免费看| 欧美激情成人| 欧美高清视频一区| 香蕉免费一区二区三区在线观看| 国产成人极品视频| 影音先锋中文在线视频| 伊是香蕉大人久久| 丰满少妇在线观看bd| 欧美日韩日日摸| 亚洲精品77777| 亚洲嫩草精品久久| 久久av无码精品人妻系列试探| 国产精品亚洲第一区在线暖暖韩国| 欧美牲交a欧美牲交aⅴ免费下载| 午夜欧美视频| 亚洲高清不卡一区| 欧美精品中文| 99国内精品久久久久久久软件| 日韩欧美一区二区三区在线观看| 欧美精品国产精品日韩精品| 337p日本欧洲亚洲大胆鲁鲁| 精品视频在线观看日韩| 亚洲成熟女性毛茸茸| 欧美日韩免费高清一区色橹橹 | 91麻豆精品国产自产在线观看一区| 国产一级18片视频| 一区二区三区高清| 国产又粗又硬又长又爽| 亚洲国产精品成人综合| 日韩中文字幕电影| 97精品久久久午夜一区二区三区 | 国产美女自慰在线观看| 91国产成人在线| 精品成人av一区二区在线播放| 亚洲综合视频网| 青春草免费视频| 亚洲男人都懂的| 我要看一级黄色录像| 欧美韩日一区二区三区| 国产精品1000部啪视频| 99re这里只有精品视频首页| 亚洲麻豆一区二区三区| 高清不卡在线观看| 黑人性生活视频| 国产乱对白刺激视频不卡| 欧美一级小视频| 久久精品国产亚洲aⅴ| 欧美特级aaa| 麻豆国产精品777777在线| xx欧美撒尿嘘撒尿xx| 天堂精品中文字幕在线| 亚洲国产精品毛片av不卡在线| 亚洲在线观看| 亚洲精品乱码久久久久久自慰| 亚洲欧美久久久| 国产男女激情视频| 久久男女视频| 浓精h攵女乱爱av| 精品影院一区二区久久久| 午夜啪啪小视频| 国产高清亚洲一区| 亚洲精品乱码久久久久久蜜桃欧美| 国产精品一二一区| 污污免费在线观看| 99久久精品99国产精品| 一区二区伦理片| 国产精品毛片无遮挡高清| 最新av电影网站| 一区二区三区不卡在线观看 | 国产综合色一区二区三区| 欧美一区 二区| 欧美亚洲爱爱另类综合| 久久大综合网| 日本男女交配视频| 亚洲欧美日本日韩| 杨幂毛片午夜性生毛片| 国产精品1区2区3区| xxxx黄色片| 欧美高清一级片在线观看| 三级全黄做爰视频| 午夜在线成人av| 夜夜躁日日躁狠狠久久av| 欧美精品一卡两卡| 日批免费在线观看| 亚洲剧情一区二区| 免费在线观看黄| 欧美黑人性猛交| 日韩高清成人| 亚洲精品免费网站| 亚洲婷婷伊人| 日本福利视频导航| 99亚洲视频| 9l视频白拍9色9l视频| 成人国产精品视频| 超碰人人干人人| 亚洲丶国产丶欧美一区二区三区| 伊人成年综合网| 欧美不卡一区二区三区| 国产小视频福利在线| 欧美第一黄网免费网站| 性感女国产在线| 波多野结衣一区二区三区在线观看| 亚洲综合福利| 日本a级片在线播放| 日韩国产欧美在线视频| 日本人妻一区二区三区| 中文一区二区在线观看| 男女视频免费看| 91麻豆精品久久久久蜜臀| 久久精品a一级国产免视看成人| 久热精品视频在线观看一区| 国精产品一区二区三区有限公司| 97人人模人人爽人人少妇| 精品久久综合| 18岁网站在线观看| 国产成人免费xxxxxxxx| 成人性生交大片免费看无遮挡aⅴ| 亚洲成人福利片| 国产偷人妻精品一区二区在线| 亚洲日本中文字幕| 9999精品成人免费毛片在线看 | 国产视频一区二区视频| 成人一道本在线| 杨钰莹一级淫片aaaaaa播放| 在线观看成人小视频| 五月天丁香视频| 欧美激情视频一区二区| 电影一区二区三区久久免费观看| 日韩黄色影视| 久久av一区| 黄色录像a级片| 亚洲综合色丁香婷婷六月图片| 国产精品久久免费| 色青青草原桃花久久综合| 欧美中文字幕精在线不卡| 狠狠色噜噜狠狠狠狠色吗综合| 韩日在线一区| 秋霞午夜鲁丝一区二区| 亚洲视频小说图片| 97超碰国产在线| 最近2019好看的中文字幕免费| 色成人免费网站| 日韩中文一区二区三区| 久久久久99| 丰满少妇一区二区| 日韩欧美中文字幕在线观看| 污视频在线免费观看| 亚州欧美日韩中文视频| 女同一区二区三区| 91传媒久久久| 久久这里都是精品| 97人妻一区二区精品视频| 亚洲日本成人网| 国产精品成人国产| 亚洲欧美日产图| 激情图片小说一区| 午夜精品福利在线视频| 日韩欧美一二三| 动漫一区二区| 九色视频成人porny| 男女av一区三区二区色多| 免费看91的网站| 欧美男女性生活在线直播观看| 看黄网站在线观看| 高清国产一区| 国产欧美丝祙| 久久午夜福利电影| 欧美情侣在线播放| 中文字幕免费高清电视剧网站在线观看| 99超碰麻豆| 亚洲美女啪啪| 中文字幕在线观看免费高清| 欧美日韩视频不卡| 天堂8中文在线| 精品国产乱码久久久久久久软件 | 26uuu国产精品视频| 国产欧美日韩影院| 无尽裸体动漫2d在线观看| 亚洲女女做受ⅹxx高潮| 色呦呦免费观看| 国产成人综合精品在线| 亚洲国产老妈| 粉嫩av懂色av蜜臀av分享| 在线欧美日韩国产| av在线app| 久久国产精品一区二区三区四区 | 高清性色生活片在线观看| 91午夜理伦私人影院| 一本色道久久综合| 国产精品美女高潮无套| 日韩一区二区三区在线视频| 午夜影院在线播放| 一区二区三区四区视频在线 | 欧美日韩亚州综合| 成人在线高清免费| 亚洲免费不卡| 99这里都是精品| 国产精品视频一区二区三区,| 久久理论片午夜琪琪电影网| 黑丝美女一区二区| 亚洲欧洲国产视频| 欧美日韩在线综合| 国产在线观看www| 国产欧美自拍视频|