日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

一起学 Java(四) File、Try 、序列化、MySQL、Socket

發(fā)布時間:2024/4/17 数据库 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一起学 Java(四) File、Try 、序列化、MySQL、Socket 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、Java 流(Stream)、文件(File)和IO

Java.io 包幾乎包含了所有操作輸入、輸出需要的類。所有這些流類代表了輸入源和輸出目標(biāo)。

Java.io 包中的流支持很多種格式,比如:基本類型、對象、本地化字符集等等。

一個流可以理解為一個數(shù)據(jù)的序列。輸入流表示從一個源讀取數(shù)據(jù),輸出流表示向一個目標(biāo)寫數(shù)據(jù)。

Java 為 I/O 提供了強大的而靈活的支持,使其更廣泛地應(yīng)用到文件傳輸和網(wǎng)絡(luò)編程中。

?

Java?BufferedReader?類

讀取控制臺輸入

Java 的控制臺輸入由 System.in 完成。

為了獲得一個綁定到控制臺的字符流,你可以把 System.in 包裝在一個 BufferedReader 對象中來創(chuàng)建一個字符流。

下面是創(chuàng)建 BufferedReader 的基本語法:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

BufferedReader 對象創(chuàng)建后,我們便可以使用 read() 方法從控制臺讀取一個字符,或者用 readLine() 方法讀取一個字符串。

從控制臺讀取多字符輸入

從 BufferedReader 對象讀取一個字符要使用 read() 方法,每次調(diào)用 read() 方法,它從輸入流讀取一個字符并把該字符作為整數(shù)值返回。 當(dāng)流結(jié)束的時候返回 -1。該方法拋出 IOException。

// 使用 BufferedReader 在控制臺讀取字符package four;import java.io.*;public class BRRead {public static void main(String args[]) throws IOException{char c;// 使用 System.in 創(chuàng)建 BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(System.in));System.out.println("輸入字符, 按下 'q' 鍵退出。");// 讀取字符do {c = (char) br.read();System.out.println(c);} while(c != 'q');} }/*輸出結(jié)果 輸入字符, 按下 'q' 鍵退出。 suoning s u o n i n gq q*/ View Code

從控制臺讀取字符串

從標(biāo)準(zhǔn)輸入讀取一個字符串需要使用 BufferedReader 的 readLine() 方法。

它的一般格式是:

String readLine( ) throws IOException // 使用 BufferedReader 在控制臺讀取字符package four;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;public class BRReadLines {public static void main(String args[]) throws IOException{// 使用 System.in 創(chuàng)建 BufferedReader BufferedReader br = new BufferedReader(newInputStreamReader(System.in));String str;System.out.println("Enter lines of text.");System.out.println("Enter 'end' to quit.");do {str = br.readLine();System.out.println(str);} while(!str.equals("end"));} }/*輸出結(jié)果 Enter lines of text. Enter 'end' to quit. suoning suoning end end */ View Code

控制臺輸出

控制臺的輸出由 print( ) 和 println() 完成。這些方法都由類 PrintStream 定義,System.out 是該類對象的一個引用。

PrintStream 繼承了 OutputStream類,并且實現(xiàn)了方法 write()。這樣,write() 也可以用來往控制臺寫操作。

PrintStream 定義 write() 的最簡單格式如下所示:

該方法將 byteval 的低八位字節(jié)寫到流中。 void write(int byteval) // 演示 System.out.write().import java.io.*;public class WriteDemo {public static void main(String args[]) {int b; b = 'S';System.out.write(b);System.out.write('\n');} }/*輸出結(jié)果 S */ View Code

?

Java Scanner 類

java.util.Scanner 是 Java5 的新特征,我們可以通過 Scanner 類來獲取用戶的輸入。

下面是創(chuàng)建 Scanner 對象的基本語法:

Scanner s = new Scanner(System.in);

?

package four;import java.util.Scanner;public class ScannerDemo {public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù) //next方式接收字符串System.out.println("next方式接收:");// 判斷是否還有輸入if(scan.hasNext()){ String str1 = scan.next();System.out.println("輸入的數(shù)據(jù)為:"+str1); }} }/*輸出結(jié)果 next方式接收: suo ning 輸入的數(shù)據(jù)為:suo */ next package four;import java.util.Scanner;public class ScannerLinesDemo {public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù) //nextLine方式接收字符串System.out.println("nextLine方式接收:");// 判斷是否還有輸入if(scan.hasNextLine()){ String str2 = scan.nextLine();System.out.println("輸入的數(shù)據(jù)為:"+str2); }} }/*輸出結(jié)果 nextLine方式接收: suo ning 輸入的數(shù)據(jù)為:suo ning */ nextLine

?

next() 與 nextLine() 區(qū)別

next():

  • 1、一定要讀取到有效字符后才可以結(jié)束輸入。
  • 2、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉。
  • 3、只有輸入有效字符后才將其后面輸入的空白作為分隔符或者結(jié)束符。
  • next() 不能得到帶有空格的字符串。

nextLine():

  • 1、以Enter為結(jié)束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符。
  • 2、可以獲得空白。

?

輸入之前最好先使用 hasNextXxx() 方法進行驗證,再使用 nextXxx() 來讀取。

package four;import java.util.Scanner;public class ScannerHGDemo {public static void main(String[] args) { Scanner scan = new Scanner(System.in); // 從鍵盤接收數(shù)據(jù) int i = 0 ; float f = 0.0f ; System.out.print("輸入整數(shù):"); if(scan.hasNextInt()){ // 判斷輸入的是否是整數(shù) i = scan.nextInt() ; // 接收整數(shù) System.out.println("整數(shù)數(shù)據(jù):" + i) ; }else{ // 輸入錯誤的信息 System.out.println("輸入的不是整數(shù)!") ; } System.out.print("輸入小數(shù):"); if(scan.hasNextFloat()){ // 判斷輸入的是否是小數(shù) f = scan.nextFloat() ; // 接收小數(shù) System.out.println("小數(shù)數(shù)據(jù):" + f) ; }else{ // 輸入錯誤的信息 System.out.println("輸入的不是小數(shù)!") ; }Scanner scan1 = new Scanner(System.in);System.out.print("輸入個數(shù):"); double sum = 0; int m = 0; while(scan1.hasNextDouble()) { double x = scan1.nextDouble(); m = m + 1; sum = sum + x; } System.out.println(m+"個數(shù)的和為"+sum); System.out.println(m+"個數(shù)的平均值是"+(sum/m));} }/*輸出結(jié)果 輸入整數(shù):1 整數(shù)數(shù)據(jù):1 輸入小數(shù):1.1 小數(shù)數(shù)據(jù):1.1 輸入個數(shù):101個數(shù)的和為10.0 1個數(shù)的平均值是10.0 */ View Code

?

讀寫文件

一個流被定義為一個數(shù)據(jù)序列。輸入流用于從源讀取數(shù)據(jù),輸出流用于向目標(biāo)寫數(shù)據(jù)。

下圖是一個描述輸入流和輸出流的類層次圖。

?

FileInputStream

該流用于從文件讀取數(shù)據(jù),它的對象可以用關(guān)鍵字 new 來創(chuàng)建。

有多種構(gòu)造方法可用來創(chuàng)建對象。

InputStream f = new FileInputStream("C:/java/hello");File f = new File("C:/java/hello"); InputStream f = new FileInputStream(f);

創(chuàng)建了InputStream對象,就可以使用下面的方法來讀取流或者進行其他的流操作:

序號方法及描述
1public void close() throws IOException{}
關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)資源。拋出IOException異常。
2protected void finalize()throws IOException {}
這個方法清除與該文件的連接。確保在不再引用文件輸入流時調(diào)用其 close 方法。拋出IOException異常。
3public int read(int r)throws IOException{}
這個方法從 InputStream 對象讀取指定字節(jié)的數(shù)據(jù)。返回為整數(shù)值。返回下一字節(jié)數(shù)據(jù),如果已經(jīng)到結(jié)尾則返回-1。
4public int read(byte[] r) throws IOException{}
這個方法從輸入流讀取r.length長度的字節(jié)。返回讀取的字節(jié)數(shù)。如果是文件結(jié)尾則返回-1。
5public int available() throws IOException{}
返回下一次對此輸入流調(diào)用的方法可以不受阻塞地從此輸入流讀取的字節(jié)數(shù)。返回一個整數(shù)值。

?

FileOutputStream

該類用來創(chuàng)建一個文件并向文件中寫數(shù)據(jù)。

如果該流在打開文件進行輸出前,目標(biāo)文件不存在,那么該流會創(chuàng)建該文件。

OutputStream f = new FileOutputStream("C:/java/hello")File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f);

創(chuàng)建OutputStream 對象完成后,就可以使用下面的方法來寫入流或者進行其他的流操作:

序號方法及描述
1public void close() throws IOException{}
關(guān)閉此文件輸入流并釋放與此流有關(guān)的所有系統(tǒng)資源。拋出IOException異常。
2protected void finalize()throws IOException {}
這個方法清除與該文件的連接。確保在不再引用文件輸入流時調(diào)用其 close 方法。拋出IOException異常。
3public void write(int w)throws IOException{}
這個方法把指定的字節(jié)寫到輸出流中。
4public void write(byte[] w)
把指定數(shù)組中w.length長度的字節(jié)寫到OutputStream中。

?

?實例

package four;import java.io.*;public class myFileInputStream {public static void main(String[] args){try{byte bWrite [] = {11,22,33,55,66};OutputStream os = new FileOutputStream("F:\\sql_text\\department.txt");for(int x=0;x<bWrite.length;x++){os.write(bWrite[x]);}os.close();InputStream is = new FileInputStream("F:\\sql_text\\department.txt");int size = is.available();for(int i=0;i<size;i++){System.out.print(is.read());}is.close();} catch(IOException e){System.out.println("IOException..");}} } FileInputStream & FileOutputStream

?上面的程序首先創(chuàng)建文件test.txt,并把給定的數(shù)字以二進制形式寫進該文件,同時輸出到控制臺上。

以上代碼由于是二進制寫入,可能存在亂碼,你可以使用以下代碼實例來解決亂碼問題:

package four;import java.io.*;public class fileStreamTest2{public static void main(String[] args) throws IOException {File f = new File("F:\\sql_text\\department.txt");FileOutputStream fop = new FileOutputStream(f);// 構(gòu)建FileOutputStream對象,文件不存在會自動新建 OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");// 構(gòu)建OutputStreamWriter對象,參數(shù)可以指定編碼,默認為操作系統(tǒng)默認編碼,windows上是gbk writer.append("中文輸入");// 寫入到緩沖區(qū) writer.append("\r\n");//換行 writer.append("English");// 刷新緩存沖,寫入到文件,如果下面已經(jīng)沒有寫入的內(nèi)容了,直接close也會寫入 writer.close();//關(guān)閉寫入流,同時會把緩沖區(qū)內(nèi)容寫入文件,所以上面的注釋掉 fop.close();// 關(guān)閉輸出流,釋放系統(tǒng)資源 FileInputStream fip = new FileInputStream(f);// 構(gòu)建FileInputStream對象 InputStreamReader reader = new InputStreamReader(fip, "UTF-8");// 構(gòu)建InputStreamReader對象,編碼與寫入相同 StringBuffer sb = new StringBuffer();while (reader.ready()) {sb.append((char) reader.read());// 轉(zhuǎn)成char加到StringBuffer對象中 }System.out.println(sb.toString());reader.close();// 關(guān)閉讀取流 fip.close();// 關(guān)閉輸入流,釋放系統(tǒng)資源 } } FileInputStream & FileOutputStream

??

二、Java 異常處理

要理解Java異常處理是如何工作的,你需要掌握以下三種類型的異常:

  • 檢查性異常:最具代表的檢查性異常是用戶錯誤或問題引起的異常,這是程序員無法預(yù)見的。例如要打開一個不存在文件時,一個異常就發(fā)生了,這些異常在編譯時不能被簡單地忽略。
  • 運行時異常:?運行時異常是可能被程序員避免的異常。與檢查性異常相反,運行時異??梢栽诰幾g時被忽略。
  • 錯誤:?錯誤不是異常,而是脫離程序員控制的問題。錯誤在代碼中通常被忽略。例如,當(dāng)棧溢出時,一個錯誤就發(fā)生了,它們在編譯也檢查不到的。

Exception 類的層次

所有的異常類是從 java.lang.Exception 類繼承的子類。

Exception 類是 Throwable 類的子類。除了Exception類外,Throwable還有一個子類Error 。

Java 程序通常不捕獲錯誤。錯誤一般發(fā)生在嚴(yán)重故障時,它們在Java程序處理的范疇之外。

Error 用來指示運行時環(huán)境發(fā)生的錯誤。

例如,JVM 內(nèi)存溢出。一般地,程序不會從錯誤中恢復(fù)。

異常類有兩個主要的子類:IOException 類和 RuntimeException 類。

?

?

?

Java 內(nèi)置異常類

Java 語言定義了一些異常類在 java.lang 標(biāo)準(zhǔn)包中。

標(biāo)準(zhǔn)運行時異常類的子類是最常見的異常類。由于 java.lang 包是默認加載到所有的 Java 程序的,所以大部分從運行時異常類繼承而來的異常都可以直接使用。

Java 根據(jù)各個類庫也定義了一些其他的異常,下面的表中列出了 Java 的非檢查性異常。

異常描述
ArithmeticException當(dāng)出現(xiàn)異常的運算條件時,拋出此異常。例如,一個整數(shù)"除以零"時,拋出此類的一個實例。
ArrayIndexOutOfBoundsException用非法索引訪問數(shù)組時拋出的異常。如果索引為負或大于等于數(shù)組大小,則該索引為非法索引。
ArrayStoreException試圖將錯誤類型的對象存儲到一個對象數(shù)組時拋出的異常。
ClassCastException當(dāng)試圖將對象強制轉(zhuǎn)換為不是實例的子類時,拋出該異常。
IllegalArgumentException拋出的異常表明向方法傳遞了一個不合法或不正確的參數(shù)。
IllegalMonitorStateException拋出的異常表明某一線程已經(jīng)試圖等待對象的監(jiān)視器,或者試圖通知其他正在等待對象的監(jiān)視器而本身沒有指定監(jiān)視器的線程。
IllegalStateException在非法或不適當(dāng)?shù)臅r間調(diào)用方法時產(chǎn)生的信號。換句話說,即 Java 環(huán)境或 Java 應(yīng)用程序沒有處于請求操作所要求的適當(dāng)狀態(tài)下。
IllegalThreadStateException線程沒有處于請求操作所要求的適當(dāng)狀態(tài)時拋出的異常。
IndexOutOfBoundsException指示某排序索引(例如對數(shù)組、字符串或向量的排序)超出范圍時拋出。
NegativeArraySizeException如果應(yīng)用程序試圖創(chuàng)建大小為負的數(shù)組,則拋出該異常。
NullPointerException當(dāng)應(yīng)用程序試圖在需要對象的地方使用?null?時,拋出該異常
NumberFormatException當(dāng)應(yīng)用程序試圖將字符串轉(zhuǎn)換成一種數(shù)值類型,但該字符串不能轉(zhuǎn)換為適當(dāng)格式時,拋出該異常。
SecurityException由安全管理器拋出的異常,指示存在安全侵犯。
StringIndexOutOfBoundsException此異常由?String?方法拋出,指示索引或者為負,或者超出字符串的大小。
UnsupportedOperationException當(dāng)不支持請求的操作時,拋出該異常。

?

下面的表中列出了 Java 定義在 java.lang 包中的檢查性異常類。

異常描述
ClassNotFoundException應(yīng)用程序試圖加載類時,找不到相應(yīng)的類,拋出該異常。
CloneNotSupportedException當(dāng)調(diào)用?Object?類中的?clone?方法克隆對象,但該對象的類無法實現(xiàn)?Cloneable?接口時,拋出該異常。
IllegalAccessException拒絕訪問一個類的時候,拋出該異常。
InstantiationException當(dāng)試圖使用?Class?類中的?newInstance?方法創(chuàng)建一個類的實例,而指定的類對象因為是一個接口或是一個抽象類而無法實例化時,拋出該異常。
InterruptedException一個線程被另一個線程中斷,拋出該異常。
NoSuchFieldException請求的變量不存在
NoSuchMethodException請求的方法不存在

?

異常方法

下面的列表是 Throwable 類的主要方法:

?

序號方法及說明
1public String getMessage()
返回關(guān)于發(fā)生的異常的詳細信息。這個消息在Throwable 類的構(gòu)造函數(shù)中初始化了。
2public Throwable getCause()
返回一個Throwable 對象代表異常原因。
3public String toString()
使用getMessage()的結(jié)果返回類的串級名字。
4public void printStackTrace()
打印toString()結(jié)果和棧層次到System.err,即錯誤輸出流。
5public StackTraceElement [] getStackTrace()
返回一個包含堆棧層次的數(shù)組。下標(biāo)為0的元素代表棧頂,最后一個元素代表方法調(diào)用堆棧的棧底。
6public Throwable fillInStackTrace()
用當(dāng)前的調(diào)用棧層次填充Throwable 對象棧層次,添加到棧層次任何先前信息中。

?

捕獲異常

使用 try 和 catch 關(guān)鍵字可以捕獲異常。try/catch 代碼塊放在異??赡馨l(fā)生的地方。

try/catch代碼塊中的代碼稱為保護代碼,使用 try/catch 的語法如下:

try {// 程序代碼 }catch(ExceptionName e1) {//Catch 塊 }

?

多重捕獲塊

一個 try 代碼塊后面跟隨多個 catch 代碼塊的情況就叫多重捕獲。

?

finally關(guān)鍵字

finally 關(guān)鍵字用來創(chuàng)建在 try 代碼塊后面執(zhí)行的代碼塊。

無論是否發(fā)生異常,finally 代碼塊中的代碼總會被執(zhí)行。

在 finally 代碼塊中,可以運行清理類型等收尾善后性質(zhì)的語句。

try{// 程序代碼 }catch(異常類型1 異常的變量名1){// 程序代碼 }catch(異常類型2 異常的變量名2){// 程序代碼 }finally{// 程序代碼 } finally

?

實例

//ExcepTest.javapackage five;import java.*;public class ExcepTest {public static void main(String args[]){try{int a[] = new int[2];System.out.printf("Access element three :%s", a[3]);} catch (ArrayIndexOutOfBoundsException e) {System.out.printf("Exception thrown : %s", e);} finally{System.out.println("Finally.");}} } // Exception thrown : java.lang.ArrayIndexOutOfBoundsException: 3Finally.

?

throws/throw 關(guān)鍵字:

如果一個方法沒有捕獲一個檢查性異常,那么該方法必須使用 throws 關(guān)鍵字來聲明。throws 關(guān)鍵字放在方法簽名的尾部。

也可以使用 throw 關(guān)鍵字拋出一個異常,無論它是新實例化的還是剛捕獲到的。

//testthrow.javapackage five;import java.io.*; import java.rmi.RemoteException;import javax.naming.InsufficientResourcesException;public class testthrow {public void deposit (double amount) throws RemoteException {throw new RemoteException();}public void withdraw (double amount) throws RemoteException, InsufficientResourcesException{// 多個異常 } }

?

聲明自定義異常

在 Java 中你可以自定義異常。編寫自己的異常類時需要記住下面的幾點。

  • 所有異常都必須是 Throwable 的子類。
  • 如果希望寫一個檢查性異常類,則需要繼承 Exception 類。
  • 如果你想寫一個運行時異常類,那么需要繼承 RuntimeException 類。

可以像下面這樣定義自己的異常類:

class MyException extends Exception{ }

?

實例

//MyException.javapackage five;public class MyException extends Exception {private double amont;public MyException(double amount){this.amont = amount;}public double getAmount (){return amont;} } MyException.java //CheckingAccount.javapackage five;public class CheckingAccount {public double balance;private int number;public CheckingAccount(int number){this.number = number;}public void deposit(double amount){balance += amount;}public void withdraw(double amount) throws MyException{if (amount <= balance){balance -= amount;} else {double needs = amount - balance;throw new MyException(needs);}}public double getBalance(){return balance;}public int getNumber(){return number;}} CheckingAccount.java package five;public class BankDemo {public static void main(String[] args){CheckingAccount c = new CheckingAccount(99);c.deposit(66);try{c.withdraw(10);System.out.println("10");c.withdraw(88);} catch (MyException e) {System.out.println("error Myerror " + e);System.out.println("error Myerror " + e.getAmount());e.printStackTrace();}}; }/** 10 error Myerror five.MyException error Myerror 32.0 five.MyExceptionat five.CheckingAccount.withdraw(CheckingAccount.java:22)at five.BankDemo.main(BankDemo.java:10) */ BankDemo.java

?

三、java 序列化

Java 提供了一種對象序列化的機制,該機制中,一個對象可以被表示為一個字節(jié)序列,該字節(jié)序列包括該對象的數(shù)據(jù)、有關(guān)對象的類型的信息和存儲在對象中數(shù)據(jù)的類型。

將序列化對象寫入文件之后,可以從文件中讀取出來,并且對它進行反序列化,也就是說,對象的類型信息、對象的數(shù)據(jù),還有對象中的數(shù)據(jù)類型可以用來在內(nèi)存中新建對象。

整個過程都是 Java 虛擬機(JVM)獨立的,也就是說,在一個平臺上序列化的對象可以在另一個完全不同的平臺上反序列化該對象。

類 ObjectInputStream 和 ObjectOutputStream 是高層次的數(shù)據(jù)流,它們包含序列化和反序列化對象的方法。

ObjectOutputStream 類包含很多寫方法來寫各種數(shù)據(jù)類型,但是一個特別的方法例外:

public final void writeObject(Object x) throws IOException

上面的方法序列化一個對象,并將它發(fā)送到輸出流。相似的 ObjectInputStream 類包含如下反序列化一個對象的方法:

public final Object readObject() throws IOException, ClassNotFoundException

該方法從流中取出下一個對象,并將對象反序列化。它的返回值為Object,因此,你需要將它轉(zhuǎn)換成合適的數(shù)據(jù)類型。

為了演示序列化在Java中是怎樣工作的,我將使用Employee類,假設(shè)我們定義了如下的Employee類,該類實現(xiàn)了Serializable 接口。

// Employee.javapublic class Employee implements java.io.Serializable {public String name;public String address;public transient int SSN;public int number;public void mailCheck(){System.out.println("Mailing a check to " + name+ " " + address);} }

請注意,一個類的對象要想序列化成功,必須滿足兩個條件:

該類必須實現(xiàn) java.io.Serializable 對象。

該類的所有屬性必須是可序列化的。如果有一個屬性不是可序列化的,則該屬性必須注明是短暫的。

如果你想知道一個 Java 標(biāo)準(zhǔn)類是否是可序列化的,請查看該類的文檔。檢驗一個類的實例是否能序列化十分簡單, 只需要查看該類有沒有實現(xiàn) java.io.Serializable接口。

?

實例

序列化對象

ObjectOutputStream 類用來序列化一個對象,如下的 SerializeDemo 例子實例化了一個 Employee 對象,并將該對象序列化到一個文件中。

該程序執(zhí)行后,就創(chuàng)建了一個名為 employee.ser 文件。該程序沒有任何輸出,但是你可以通過代碼研讀來理解程序的作用。

注意:?當(dāng)序列化一個對象到文件時, 按照 Java 的標(biāo)準(zhǔn)約定是給文件一個 .ser 擴展名。

//SerializeDemo.javapackage five;import java.io.*;public class SerializeDemo {public static void main(String[] args){Employee e = new Employee();e.name = "Nick";e.address = "Beijing";e.SSN = 630571017;e.number = 18;try {FileOutputStream fileOut = new FileOutputStream("F:\\java_project\\employee.ser");ObjectOutputStream out = new ObjectOutputStream(fileOut);out.writeObject(e);out.close();fileOut.close();System.out.println("enoloyee.ser");} catch (Exception e2) {e2.printStackTrace();}} }

?

反序列化對象

下面的 DeserializeDemo 程序?qū)嵗朔葱蛄谢?#xff0c;/tmp/employee.ser 存儲了 Employee 對象。

//DeserializeDemo.javapackage five;import java.io.*;public class DeserializeDemo {public static void main(String[] args){Employee e = null;try {FileInputStream fileIn = new FileInputStream("F:\\java_project\\employee.ser");ObjectInputStream in = new ObjectInputStream(fileIn);e = (Employee) in.readObject();in.close();fileIn.close();} catch (IOException i){i.printStackTrace();return;} catch (ClassNotFoundException c) {System.out.println("Employee class not found");c.printStackTrace();return;}System.out.println("Employee.");System.out.println("Name: " + e.name);System.out.println("Address: " + e.address);System.out.println("SSN: " + e.SSN);System.out.println("Number: " + e.number);} }/* Employee. Name: Nick Address: Beijing SSN: 0 Number: 18 */

readObject() 方法中的 try/catch代碼塊嘗試捕獲 ClassNotFoundException 異常。對于 JVM 可以反序列化對象,它必須是能夠找到字節(jié)碼的類。如果JVM在反序列化對象的過程中找不到該類,則拋出一個 ClassNotFoundException 異常。

注意,readObject() 方法的返回值被轉(zhuǎn)化成 Employee 引用。

當(dāng)對象被序列化時,屬性 SSN 的值為 630571017,但是因為該屬性是短暫的,該值沒有被發(fā)送到輸出流。所以反序列化后 Employee 對象的 SSN 屬性為 0。

?

?

四、連接MySQL

Java 連接 MySQL 需要驅(qū)動包,最新版下載地址為:http://dev.mysql.com/downloads/connector/j/,解壓后得到j(luò)ar庫文件,然后在對應(yīng)的項目中導(dǎo)入該庫文件。

Eclipse中導(dǎo)入外部jar包:

http://jingyan.baidu.com/article/ca41422fc76c4a1eae99ed9f.html

?

//MySQLDemo.javapackage six;import java.sql.*;public class MySQLDemo {// JDBC 驅(qū)動名及數(shù)據(jù)庫 URL(注意冒號,少些一個讓我找了10分鐘)static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";static final String DB_URL = "jdbc:mysql://127.0.0.1:3306/test";// 數(shù)據(jù)庫的用戶名與密碼,需要根據(jù)自己的設(shè)置static final String USER = "root";static final String PASS = "suoning";public static void main(String[] args){Connection conn = null;Statement stmt = null;try{// 注冊 JDBC 驅(qū)動 Class.forName(JDBC_DRIVER);// 打開鏈接System.out.println("連接數(shù)據(jù)庫...");conn = DriverManager.getConnection(DB_URL, USER, PASS);// 執(zhí)行查詢System.out.println("實例化Statement...");stmt = conn.createStatement();String sql;sql = "SELECT * FROM user";ResultSet rs = stmt.executeQuery(sql);// 展開結(jié)果集數(shù)據(jù)庫while (rs.next()){// 通過字段檢索int id = rs.getInt("id");String name = rs.getString("name");// 輸出數(shù)據(jù) System.out.print(id);System.out.print(" ");System.out.print(name);System.out.println();}// 完成后關(guān)閉 rs.close();stmt.close();conn.close();} catch (SQLException e){// 處理 JDBC 錯誤 e.printStackTrace();} catch (Exception e){// 處理 Class.forName 錯誤 e.printStackTrace();} finally{// 關(guān)閉資源try{if(stmt!=null) stmt.close();} catch (SQLException e){}try{if(conn!=null) conn.close();} catch (SQLException e){e.printStackTrace();}}System.out.println("The end.");} }/* 連接數(shù)據(jù)庫... 實例化Statement... 1 nick 2 jenny 3 honey The end. */

?

五、Socket編程?

網(wǎng)絡(luò)編程是指編寫運行在多個設(shè)備(計算機)的程序,這些設(shè)備都通過網(wǎng)絡(luò)連接起來。

java.net 包中 J2SE 的 API 包含有類和接口,它們提供低層次的通信細節(jié)。你可以直接使用這些類和接口,來專注于解決問題,而不用關(guān)注通信細節(jié)。

java.net 包中提供了兩種常見的網(wǎng)絡(luò)協(xié)議的支持:

  • TCP:TCP 是傳輸控制協(xié)議的縮寫,它保障了兩個應(yīng)用程序之間的可靠通信。通常用于互聯(lián)網(wǎng)協(xié)議,被稱 TCP / IP。

  • UDP:UDP 是用戶數(shù)據(jù)報協(xié)議的縮寫,一個無連接的協(xié)議。提供了應(yīng)用程序之間要發(fā)送的數(shù)據(jù)的數(shù)據(jù)包

?

套接字使用TCP提供了兩臺計算機之間的通信機制。 客戶端程序創(chuàng)建一個套接字,并嘗試連接服務(wù)器的套接字。

當(dāng)連接建立時,服務(wù)器會創(chuàng)建一個 Socket 對象??蛻舳撕头?wù)器現(xiàn)在可以通過對 Socket 對象的寫入和讀取來進行進行通信。

java.net.Socket 類代表一個套接字,并且 java.net.ServerSocket 類為服務(wù)器程序提供了一種來監(jiān)聽客戶端,并與他們建立連接的機制。

以下步驟在兩臺計算機之間使用套接字建立TCP連接時會出現(xiàn):

  • 服務(wù)器實例化一個 ServerSocket 對象,表示通過服務(wù)器上的端口通信。

  • 服務(wù)器調(diào)用 ServerSocket 類的 accept() 方法,該方法將一直等待,直到客戶端連接到服務(wù)器上給定的端口。

  • 服務(wù)器正在等待時,一個客戶端實例化一個 Socket 對象,指定服務(wù)器名稱和端口號來請求連接。

  • Socket 類的構(gòu)造函數(shù)試圖將客戶端連接到指定的服務(wù)器和端口號。如果通信被建立,則在客戶端創(chuàng)建一個 Socket 對象能夠與服務(wù)器進行通信。

  • 在服務(wù)器端,accept() 方法返回服務(wù)器上一個新的 socket 引用,該 socket 連接到客戶端的 socket。

連接建立后,通過使用 I/O 流在進行通信,每一個socket都有一個輸出流和一個輸入流,客戶端的輸出流連接到服務(wù)器端的輸入流,而客戶端的輸入流連接到服務(wù)器端的輸出流。

TCP 是一個雙向的通信協(xié)議,因此數(shù)據(jù)可以通過兩個數(shù)據(jù)流在同一時間發(fā)送.以下是一些類提供的一套完整的有用的方法來實現(xiàn) socket。

?

ServerSocket 類的方法

服務(wù)器應(yīng)用程序通過使用 java.net.ServerSocket 類以獲取一個端口,并且偵聽客戶端請求。

ServerSocket 類有四個構(gòu)造方法:

序號方法描述
1public ServerSocket(int port) throws IOException
創(chuàng)建綁定到特定端口的服務(wù)器套接字。
2public ServerSocket(int port, int backlog) throws IOException
利用指定的 backlog 創(chuàng)建服務(wù)器套接字并將其綁定到指定的本地端口號。
3public ServerSocket(int port, int backlog, InetAddress address) throws IOException
使用指定的端口、偵聽 backlog 和要綁定到的本地 IP 地址創(chuàng)建服務(wù)器。
4public ServerSocket() throws IOException
創(chuàng)建非綁定服務(wù)器套接字。

創(chuàng)建非綁定服務(wù)器套接字。 如果 ServerSocket 構(gòu)造方法沒有拋出異常,就意味著你的應(yīng)用程序已經(jīng)成功綁定到指定的端口,并且偵聽客戶端請求。

這里有一些 ServerSocket 類的常用方法:

序號方法描述
1public int getLocalPort()
??返回此套接字在其上偵聽的端口。
2public Socket accept() throws IOException
偵聽并接受到此套接字的連接。
3public void setSoTimeout(int timeout)
?通過指定超時值啟用/禁用 SO_TIMEOUT,以毫秒為單位。
4public void bind(SocketAddress host, int backlog)
將?ServerSocket?綁定到特定地址(IP 地址和端口號)。

?

Socket 類的方法

java.net.Socket 類代表客戶端和服務(wù)器都用來互相溝通的套接字。客戶端要獲取一個 Socket 對象通過實例化 ,而 服務(wù)器獲得一個 Socket 對象則通過 accept() 方法的返回值。

Socket 類有五個構(gòu)造方法.

序號方法描述
1public Socket(String host, int port) throws UnknownHostException, IOException.
創(chuàng)建一個流套接字并將其連接到指定主機上的指定端口號。
2public Socket(InetAddress host, int port) throws IOException
創(chuàng)建一個流套接字并將其連接到指定 IP 地址的指定端口號。
3public Socket(String host, int port, InetAddress localAddress, int localPort) throws IOException.
創(chuàng)建一個套接字并將其連接到指定遠程主機上的指定遠程端口。
4public Socket(InetAddress host, int port, InetAddress localAddress, int localPort) throws IOException.
創(chuàng)建一個套接字并將其連接到指定遠程地址上的指定遠程端口。
5public Socket()
通過系統(tǒng)默認類型的 SocketImpl 創(chuàng)建未連接套接字

當(dāng) Socket 構(gòu)造方法返回,并沒有簡單的實例化了一個 Socket 對象,它實際上會嘗試連接到指定的服務(wù)器和端口。

下面列出了一些感興趣的方法,注意客戶端和服務(wù)器端都有一個 Socket 對象,所以無論客戶端還是服務(wù)端都能夠調(diào)用這些方法。

序號方法描述
1public void connect(SocketAddress host, int timeout) throws IOException
將此套接字連接到服務(wù)器,并指定一個超時值。
2public InetAddress getInetAddress()
?返回套接字連接的地址。
3public int getPort()
返回此套接字連接到的遠程端口。
4public int getLocalPort()
返回此套接字綁定到的本地端口。
5public SocketAddress getRemoteSocketAddress()
返回此套接字連接的端點的地址,如果未連接則返回?null。
6public InputStream getInputStream() throws IOException
返回此套接字的輸入流。
7public OutputStream getOutputStream() throws IOException
返回此套接字的輸出流。
8public void close() throws IOException
關(guān)閉此套接字。

?

InetAddress 類的方法

這個類表示互聯(lián)網(wǎng)協(xié)議(IP)地址。下面列出了 Socket 編程時比較有用的方法:

序號方法描述
1static InetAddress getByAddress(byte[] addr)
在給定原始 IP 地址的情況下,返回?InetAddress?對象。
2static InetAddress getByAddress(String host, byte[] addr)
根據(jù)提供的主機名和 IP 地址創(chuàng)建 InetAddress。
3static InetAddress getByName(String host)
在給定主機名的情況下確定主機的 IP 地址。
4String getHostAddress()?
返回 IP 地址字符串(以文本表現(xiàn)形式)。
5String getHostName()?
?獲取此 IP 地址的主機名。
6static InetAddress getLocalHost()
返回本地主機。
7String toString()
將此 IP 地址轉(zhuǎn)換為?String。

?

?實例

Socket 服務(wù)端實例:

//GreetingServer.javapackage seven;import java.net.*; import java.io.*;public class GreetingServer extends Thread {private ServerSocket serverSocket;public GreetingServer(int port) throws IOException{serverSocket = new ServerSocket(port);serverSocket.setSoTimeout(9999);}public void run(){while(true){try{System.out.println("Wating for you ..." + serverSocket.getLocalPort());Socket server = serverSocket.accept();System.out.println("connected " + server.getRemoteSocketAddress());DataInputStream in = new DataInputStream(server.getInputStream());System.out.println(in.readUTF());DataOutputStream out = new DataOutputStream(server.getOutputStream());out.writeUTF("The end....." + server.getLocalSocketAddress());server.close();} catch(SocketTimeoutException e){System.out.println("Time out error.");break;} catch(IOException e){e.printStackTrace();break;}}}public static void main(String[] args){int port = Integer.parseInt(args[0]);try {Thread t = new GreetingServer(port);t.start();} catch (IOException e) {e.printStackTrace();}}}

?

Socket 客戶端實例:

//GreetingClient.javapackage seven;import java.net.*; import java.io.*;public class GreetingClient {public static void main(String[] args){String serverName = args[0];int port = Integer.parseInt(args[1]);try {System.out.println(serverName + " " + port);Socket client = new Socket(serverName, port);System.out.println(client.getRemoteSocketAddress());OutputStream outToServer = client.getOutputStream();DataOutputStream out = new DataOutputStream(outToServer);out.writeUTF("S" + client.getLocalSocketAddress());InputStream inFormServer = client.getInputStream();DataInputStream in = new DataInputStream(inFormServer);System.out.println("s" + in.readUTF());client.close();} catch (IOException e) {e.printStackTrace();}}}

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/suoning/p/6243163.html

總結(jié)

以上是生活随笔為你收集整理的一起学 Java(四) File、Try 、序列化、MySQL、Socket的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

欧洲一区二区三区精品 | 在线视频在线观看 | 丁香六月综合网 | 中文字幕黄色网 | 国产精品18久久久 | 免费观看www视频 | 99视频在线免费播放 | 黄网站污 | a级片久久久| 国产精品一区二区三区视频免费 | 久久人人爽人人爽人人片av免费 | 伊人五月天 | 曰韩精品 | 精品国产欧美一区二区 | 亚洲欧美一区二区三区孕妇写真 | 中文字幕观看在线 | 精品免费国产一区二区三区四区 | 毛片网在线观看 | 国产精品入口麻豆www | 久久av观看| 成人黄色小说视频 | 91在线国产观看 | 国产免费观看视频 | 在线视频观看亚洲 | 日本三级在线观看中文字 | 久久不卡免费视频 | 日韩精品最新在线观看 | 国产欧美日韩一区 | 久久久99国产精品免费 | 99精品国产高清在线观看 | 免费国产黄线在线观看视频 | av在线电影免费观看 | 日韩网站中文字幕 | 人人看看人人 | 国产精品av电影 | 日韩高清一 | 国产糖心vlog在线观看 | 天天操夜夜拍 | 中文字幕在线观看视频网站 | 免费黄色在线网址 | 久久视频二区 | 亚洲成人动漫在线观看 | 天天爽天天做 | 可以免费看av| 国产精品国产三级国产aⅴ9色 | 在线观看免费视频你懂的 | 精品福利在线视频 | 国产一区网址 | 干av在线| 五月天婷婷免费视频 | 黄色大片国产 | av电影免费| 中文乱码视频在线观看 | 一区二区精品视频 | 亚洲欧美视屏 | 国产中文字幕视频在线观看 | 综合久久网| 99免费在线观看视频 | 日韩在线精品一区 | 国产最顶级的黄色片在线免费观看 | 麻豆成人在线观看 | 亚洲欧洲成人 | 国产啊v在线观看 | 五月天久久久久久 | 亚洲精品视频网站在线观看 | 国产精品ⅴa有声小说 | 五月婷在线观看 | ww视频在线观看 | 五月天综合激情网 | 国产在线高清 | 92av视频| 六月天综合网 | 欧美一级片免费观看 | 波多野结衣小视频 | 国产日韩欧美综合在线 | 一区二区亚洲精品 | 国产黄色av网站 | 天天干天天爽 | 蜜臀一区二区三区精品免费视频 | 日日操操| 欧美精品久久久久久久久久丰满 | 精壮的侍卫呻吟h | 久久综合九色欧美综合狠狠 | www免费看 | 99久久免费看 | 亚洲精品1234区 | 国产中文字幕在线免费观看 | 久久精品国产第一区二区三区 | 精品国产综合区久久久久久 | 精品国产诱惑 | 欧美一区日韩一区 | 成年人视频免费在线播放 | 国产涩涩在线观看 | 91福利区一区二区三区 | 在线观av | 亚洲干 | 久久久久一区二区三区四区 | 在线三级播放 | 激情婷婷久久 | 精品久久久久久久久久久久久久久久 | av免费高清观看 | 久久精品成人欧美大片古装 | 综合网伊人| 人人精久 | 一区二区三区四区五区在线 | 国产黄色片免费在线观看 | 久久久91精品国产一区二区精品 | 久久久久国产精品免费免费搜索 | 999色视频 | 69国产盗摄一区二区三区五区 | 91精品久久久久久 | 中文字幕av播放 | 国产又粗又猛又爽又黄的视频免费 | 国产精品v欧美精品 | 久久免费视频网 | 狠狠躁18三区二区一区ai明星 | 久久精品视频在线观看 | 天天av资源 | 夜夜夜夜操 | 九九热re| 色婷婷在线播放 | 中文字幕精品一区久久久久 | 国产福利一区在线观看 | 欧美一级视频免费看 | 波多野结依在线观看 | 在线观看成人小视频 | 亚a在线 | 天天操天天操天天操天天操 | 美女网站在线免费观看 | 日韩高清在线看 | 亚洲色图22p| 亚洲免费av观看 | 亚洲欧洲在线视频 | 日韩欧美国产精品 | 91秒拍国产福利一区 | 久久免费成人精品视频 | 日韩一区二区三区在线看 | 日韩免费视频 | 亚洲 欧洲 国产 日本 综合 | 91麻豆国产 | 日韩一区正在播放 | av丝袜天堂 | 日本精品视频一区 | 黄色毛片网站在线观看 | 99久久精品免费看国产一区二区三区 | 激情欧美丁香 | 日韩av成人 | 亚洲欧美国产日韩在线观看 | 国产99中文字幕 | 婷婷国产在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久久久高清 | 久久精品美女视频网站 | 97精品国产97久久久久久免费 | 亚洲精品乱码久久久久久蜜桃欧美 | 二区在线播放 | 国产精品久久久久久久久费观看 | 亚洲黄色激情小说 | 色综合久久88色综合天天人守婷 | 激情综合电影网 | 国产99久久九九精品免费 | 日日爱av | 狠狠色香婷婷久久亚洲精品 | 一区二区中文字幕在线播放 | 国产精品videoxxxx | 欧美精品乱码久久久久 | 国产精品va在线 | 国产成人精品一区在线 | 狠狠的操你 | 色狠狠综合 | 色国产视频 | 99国产精品久久久久久久久久 | 日韩在线免费高清视频 | 中文字幕.av.在线 | 伊人小视频 | 视频福利在线观看 | 久久毛片视频 | 黄色免费av | 午夜精品福利一区二区三区蜜桃 | 亚洲精品午夜久久久久久久 | 在线国产视频观看 | 国产三级国产精品国产专区50 | 午夜精品一区二区三区在线 | 日韩视频免费观看高清 | 五月情婷婷 | 午夜精品久久久久久久久久久 | 亚洲一区视频在线播放 | 五月婷婷一区二区三区 | 久久久国产一区二区三区四区小说 | 91porny九色在线播放 | 麻豆视频成人 | 久久久 精品 | 亚洲第二色 | adn—256中文在线观看 | 国产成人一区二区三区在线观看 | 免费亚洲黄色 | 日本公妇在线观看 | 国产成人精品一区二三区 | 91国内在线 | 手机在线免费av | 美女免费视频一区二区 | 久草在线精品观看 | 韩国精品一区二区三区六区色诱 | 美女黄视频免费看 | 国产一级在线免费观看 | 天天操夜夜干 | 亚洲jizzjizz日本少妇 | 亚洲精品人人 | 日本不卡一区二区三区在线观看 | 五月婷婷在线综合 | 免费视频一级片 | 中文字幕一二三区 | 国产黄视频在线观看 | 狠狠操天天干 | 成人在线视频免费观看 | 91九色在线观看视频 | 国产女做a爱免费视频 | 91精品国产一区二区三区 | 国产不卡在线观看视频 | 日日成人网 | 99国产在线视频 | 久久精品2 | 国产精品丝袜 | 国产精品久久一区二区三区不卡 | 精品产品国产在线不卡 | 99久热在线精品视频观看 | 一级黄毛片| 国产一区二区影院 | 天天躁天天操 | 国产成本人视频在线观看 | 午夜10000 | 国产成人久久 | 91成人网页版 | 国产精品久久久久永久免费看 | 天天操 夜夜操 | 免费精品人在线二线三线 | 黄色一级大片在线观看 | 久久久久久久久久久久久久电影 | 天天综合视频在线观看 | 国产美女主播精品一区二区三区 | 久免费 | 成人小电影在线看 | 亚洲资源在线网 | 国产精品久久久久久久久久久免费 | 蜜臀精品久久久久久蜜臀 | 在线视频麻豆 | av久久在线 | av在线播放一区二区三区 | 欧美午夜剧场 | 日韩高清一 | 91精品久久久久久粉嫩 | 久久精品综合一区 | 九九九热精品免费视频观看 | 久久久久久久久影视 | 亚洲黄色网络 | 国产爽视频| 国产成人精品一区二区三区在线观看 | 一级一级一片免费 | 91免费观看网站 | 国产日韩欧美在线免费观看 | 亚洲精品国产精品国自产观看浪潮 | 四虎影视成人永久免费观看亚洲欧美 | 久久久国产精品一区二区三区 | 日韩三级一区 | 国产一区在线看 | 亚州国产精品久久久 | 欧美疯狂性受xxxxx另类 | 欧美日韩国产伦理 | 五月综合在线观看 | 国产精品免费久久久久久 | 一区二区av | 天天综合中文 | 99久久婷婷国产综合精品 | 麻豆精品视频 | 日韩中文字幕电影 | 久久久麻豆精品一区二区 | 黄色www免费 | 国产成人一区二区三区影院在线 | 99精品在线免费视频 | 久久综合婷婷 | 国产精品久久电影网 | 日本中文字幕在线电影 | 国产一级免费在线 | 国产丝袜 | 特级毛片在线免费观看 | 亚洲精品乱码久久久久久高潮 | 天天干天天做天天操 | 欧美在线观看小视频 | 五月网婷婷 | 综合中文字幕 | 国产成人精品综合 | 97国产精品亚洲精品 | 91九色性视频 | 色中文字幕在线观看 | 国产亚洲在 | 久久香蕉国产精品麻豆粉嫩av | 在线免费观看黄色av | 国产1区2区3区在线 亚洲自拍偷拍色图 | 亚洲精品999 | 高清一区二区三区 | 国产第一页精品 | 看片黄网站 | 国产一区欧美日韩 | 国产美女精品视频免费观看 | 色成人亚洲 | 超碰人人干人人 | 婷婷电影在线观看 | 在线观看你懂的网站 | 亚洲一区视频免费观看 | 视频在线日韩 | 国产精品乱码久久久久久1区2区 | 日本韩国精品一区二区在线观看 | 日本精品久久 | 国产福利a | 在线观看视频在线观看 | 亚洲黄色av | 丝袜少妇在线 | 亚洲丁香日韩 | 国产精品18久久久久久久久 | 久久久国产精品一区二区三区 | 久久久久久国产精品 | 久久涩视频 | 亚洲开心色 | 亚洲精品资源在线观看 | 夜夜操夜夜干 | 欧美一二三区在线播放 | 天天操天天透 | 欧美成人在线免费观看 | 久久精品影视 | 国产一区二区在线免费播放 | 27xxoo无遮挡动态视频 | 国产亚洲精品久久久久久移动网络 | 婷婷伊人五月 | 国产一级视屏 | 久久久久久久久精 | 免费黄a大片 | 国产精品毛片一区二区三区 | 午夜精品久久久99热福利 | 免费在线激情电影 | 国产精品99久久免费观看 | 麻豆影视在线观看 | 伊人天天干 | 免费观看一区二区三区视频 | 欧美极品xxxxx| 狠狠做深爱婷婷综合一区 | 亚洲黄色av网址 | 天天操天天干天天综合网 | 日韩av中文字幕在线 | 91精品久久久久久 | 99久久久久久久久 | 人人爽人人爽 | 欧美一级特黄高清视频 | 狠狠色狠狠色 | 色视频在线免费观看 | 天天爽夜夜爽人人爽曰av | 91精品第一页 | 欧美-第1页-屁屁影院 | 成人av在线网址 | 蜜臀av夜夜澡人人爽人人 | 成人av资源在线 | 国产流白浆高潮在线观看 | 日韩乱色精品一区二区 | 91亚洲成人 | 天天色天天射天天干 | 久久久精品成人 | 人人舔人人射 | 激情在线免费视频 | 特黄特色特刺激视频免费播放 | 午夜久久久久 | 国产精品热视频 | 日韩深夜在线观看 | 蜜臀av性久久久久蜜臀av | 中文字幕在线观看国产 | 国产精品久久久久永久免费观看 | 天天干天天操天天拍 | 综合色中文 | 91一区啪爱嗯打偷拍欧美 | 婷婷综合影院 | 国产日韩欧美在线影视 | 精品国产免费人成在线观看 | 亚洲精品美女在线观看播放 | 亚州性色 | 婷婷激情5月天 | www.av在线播放| 日韩视频中文字幕在线观看 | 伊人天天狠天天添日日拍 | 成人午夜免费剧场 | 国产精品入口久久 | 国产视频一区在线免费观看 | 青青草在久久免费久久免费 | 亚洲欧美日韩国产一区二区 | 精品亚洲一区二区 | 成年人毛片在线观看 | 久久久精选 | 免费三及片 | 成人免费观看大片 | 国产中的精品av小宝探花 | 色中色资源站 | 狠狠干成人综合网 | 国产视频九色蝌蚪 | 免费av在线播放 | 欧美精品三级在线观看 | 亚洲国产成人av网 | 99九九免费视频 | 91成人在线看 | 国产精品国产三级国产aⅴ无密码 | 色婷婷在线观看视频 | 亚洲日本va在线观看 | 国产综合婷婷 | 日本精品视频在线观看 | 日本在线观看一区 | 成片免费观看视频大全 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 五月综合网站 | 天天爱天天干天天爽 | 欧美精品中文在线免费观看 | 国产自在线| 午夜精品久久久久99热app | 亚洲国产综合在线 | 免费看的黄网站软件 | 国产成视频在线观看 | 精品国产乱码 | 夜夜操天天 | 日日夜夜天天射 | 婷婷激情站 | 日本精品久久久一区二区三区 | 亚洲精品在线免费观看视频 | 黄色网在线免费观看 | 九九爱免费视频在线观看 | 天天做天天爱夜夜爽 | 亚洲国产精品999 | 日本h在线播放 | 天天射天天添 | 国产91学生粉嫩喷水 | 四虎国产精品免费 | 亚洲色五月 | 国产男男gay做爰 | 在线观看欧美成人 | 亚洲人成免费 | av丝袜在线| 黄色精品国产 | 日产av在线播放 | 人人舔人人插 | 亚洲精品视频在线免费 | 亚洲国产精品va在线看黑人动漫 | 日韩中字在线观看 | 天天曰天天干 | 日韩在线播放欧美字幕 | 久久午夜免费视频 | 绯色av一区 | 成人国产精品入口 | 中文字幕在线免费 | 日韩一级理论片 | 日韩成人免费在线 | 欧美性黄网官网 | 伊人天天狠天天添日日拍 | 色综合激情久久 | 91看毛片| 天天操天天射天天爱 | av在线日韩| 五月天欧美精品 | 久久人人爽人人片av | 涩涩网站免费 | 永久av免费在线观看 | 国产视频在线一区二区 | 国产精品毛片一区视频播不卡 | 中文字幕亚洲综合久久五月天色无吗'' | 国产 欧美 日本 | 一区二区男女 | 亚色视频在线观看 | 丁香六月在线 | 国产一级二级在线 | 激情综合站 | a在线观看视频 | 涩涩网站在线 | 在线直播av | 天天干天天干天天干天天干天天干天天干 | 97人人看| 国产高清视频色在线www | 99麻豆久久久国产精品免费 | 欧美日韩精品久久久 | 不卡的一区二区三区 | zzijzzij日本成熟少妇 | 精品国产成人av | 午夜影院日本 | 国产91全国探花系列在线播放 | 精品国产一二三 | 最近中文字幕久久 | 国产成人精品在线观看 | 久久伊人八月婷婷综合激情 | 不卡中文字幕在线 | 国产一区二区免费看 | 亚洲精品国偷拍自产在线观看 | 午夜久久久久久久久久久 | 国产精品美女久久久久aⅴ 干干夜夜 | 在线免费三级 | 欧美日韩三级在线观看 | 久久精品美女视频网站 | 欧美日本在线视频 | 91精品在线播放 | 成人一级免费视频 | 国产99在线免费 | 黄色小说18 | 天天操比 | 深爱开心激情网 | 五月天高清欧美mv | 国产色在线视频 | 中文字幕 国产视频 | 国产三级久久久 | 亚洲精品国产自产拍在线观看 | 久久极品 | 国产色婷婷精品综合在线手机播放 | 色噜噜色噜噜 | 又黄又爽又刺激的视频 | 中国一级特黄毛片大片久久 | 在线观看中文字幕 | av免费在线观看网站 | 国产手机精品视频 | 久草精品视频在线看网站免费 | 国产精品白浆 | 国产精品露脸在线 | 伊色综合久久之综合久久 | 久久久久北条麻妃免费看 | 手机在线中文字幕 | 婷婷九月丁香 | 视频一区久久 | 中文字幕亚洲高清 | 欧美色综合天天久久综合精品 | 国产日本亚洲高清 | 精品亚洲免费视频 | 91精品免费 | 欧美日韩二区三区 | 婷婷激情影院 | 国产精品毛片一区视频播 | 日韩免费一级a毛片在线播放一级 | 国产乱码精品一区二区三区介绍 | 免费av网址大全 | 五月天亚洲婷婷 | 国产高清精品在线 | 97在线精品国自产拍中文 | 久久久久久久久久久国产精品 | 69精品久久 | 在线观看中文字幕一区二区 | 久久乐九色婷婷综合色狠狠182 | 久久久久久免费 | 91精品国产综合久久福利不卡 | 精品婷婷 | 天天操天天操一操 | 成年人免费电影在线观看 | 91成人短视频在线观看 | 日韩精品不卡在线观看 | 国产专区一 | 国产成人精品999在线观看 | 久久久久亚洲精品中文字幕 | 91成人免费电影 | 久久6精品 | 免费黄av| 亚洲精品午夜国产va久久成人 | 婷婷在线免费视频 | a天堂中文在线 | 91手机在线看片 | 激情五月av | 激情偷乱人伦小说视频在线观看 | 国产成人99av超碰超爽 | 久久久久久欧美二区电影网 | 日韩精品首页 | 一级黄网 | 日韩久久久久久久久久 | av片中文 | 亚洲精品男人天堂 | 最近日本韩国中文字幕 | 国产精品久久在线观看 | 国产免费av一区二区三区 | 免费观看第二部31集 | 开心综合网 | 免费看色视频 | 91爱爱网址| 成年人免费看的视频 | 在线观看视频精品 | 天天舔天天搞 | 涩涩网站在线观看 | 日韩大片在线免费观看 | 久久国产精品系列 | 日韩免费一区二区 | 日日夜夜综合网 | 中文字幕丰满人伦在线 | 日韩 在线 | 99精品电影 | 久久国产精品久久久 | 日韩经典一区二区三区 | 玖操| 日韩黄色软件 | 99久久久久久久久久 | 精品亚洲男同gayvideo网站 | 91香蕉视频色版 | 亚洲精品乱码久久久久 | www.五月婷 | 午夜精品视频一区二区三区在线看 | 国产成人综 | 99精品视频99 | 精品视频专区 | 国产精品18久久久久久久久久久久 | 色婷婷亚洲综合 | 亚洲人成影院在线 | 美女在线免费观看视频 | 日韩av在线网站 | 超碰免费观看 | 黄色成人毛片 | 高清在线观看av | 91精品视频网站 | 日韩伦理片一区二区三区 | 三日本三级少妇三级99 | 激情图片qvod | 很污的网站 | 久久久激情网 | 久久精品三级 | 天堂av免费在线 | 久久激情小视频 | 久久在线视频精品 | 免费日韩一区二区 | 一区 二区 精品 | 五月天中文字幕 | 亚洲美女视频在线 | 婷婷香蕉| 九色精品| 在线a亚洲视频播放在线观看 | 日韩大陆欧美高清视频区 | 日本中文字幕电影在线免费观看 | 成人h电影在线观看 | 操操日 | 五月婷婷在线视频观看 | 丁香六月在线观看 | 国产精品18久久久久白浆 | 亚洲精品中文在线资源 | 91九色porny蝌蚪视频 | 久久综合成人 | 国产精品久久久久久电影 | 久久久久久久久久网 | 亚洲 欧美 成人 | 久久免费视频在线观看30 | 麻豆传媒视频在线 | 亚洲欧美精品在线 | 99热超碰| 久久a热6 | 日韩在线一级 | 国产精品久久久久久久久久免费看 | 天天综合网 天天综合色 | 国产又粗又猛又色又黄网站 | 久草视频免费在线播放 | 91亚色视频在线观看 | 精品中文字幕在线播放 | japanesefreesexvideo高潮 | 色无五月 | 国产精品com | 亚洲自拍偷拍色图 | 久久不卡电影 | 欧美性生活久久 | 青青河边草观看完整版高清 | www.国产在线观看 | 亚洲 中文字幕av | 国产成人精品电影久久久 | 天天插天天狠 | 久久视频在线观看免费 | 亚洲精品视频大全 | 日韩黄色一区 | 91在线观看视频 | 亚洲欧洲成人精品av97 | 97精品国产97久久久久久久久久久久 | 欧美日韩在线免费观看 | 91成版人在线观看入口 | 99re久久精品国产 | 天天干,天天插 | 二区三区视频 | 国产精品2区 | 日韩1级片 | 国产欧美在线一区二区三区 | 国内精品久久久久久久97牛牛 | 韩日电影在线观看 | 超碰个人在线 | 欧美日韩视频精品 | 亚洲欧美在线综合 | 一二区av | 国产明星视频三级a三级点| 在线a视频免费观看 | 久久久天堂 | 国产精品久久久久久久久久久久午夜片 | 欧美视频二区 | 国产精品成 | 99久久精品国产观看 | 国产黄免费 | 成人av片在线观看 | 午夜性生活片 | 亚洲一级久久 | www色com| 久久精品一区二 | 久久国产成人午夜av影院潦草 | 高清在线一区 | 激情婷婷综合网 | 伊人久久国产 | 欧美一级在线 | 97在线看| www.色婷婷 | 99这里只有久久精品视频 | 九九视频免费观看视频精品 | 日韩在线视频观看 | 成人av直播 | 99亚洲天堂 | 久久综合在线 | 国产不卡一区二区视频 | 国产视频99 | 日本黄色大片免费 | 色婷婷亚洲精品 | 国产黄色片免费 | 韩国av不卡| 深爱婷婷 | 久久毛片网站 | 日韩视频免费在线 | 免费看av在线 | 天天草视频 | 国产视频精品久久 | 国产亚洲精品免费 | 国产黄色片久久 | 中文字幕在线视频一区二区三区 | 成人午夜电影久久影院 | 97爱| 中文字幕av全部资源www中文字幕在线观看 | 中文字幕免费国产精品 | 视频一区二区精品 | 国产伦精品一区二区三区四区视频 | 亚洲一区二区三区四区在线视频 | 国产剧情一区二区 | 久草精品视频在线播放 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 成 人 黄 色 免费播放 | 国产91在线观 | 成人一区在线观看 | 日本少妇高清做爰视频 | 500部大龄熟乱视频 欧美日本三级 | 免费国产黄线在线观看视频 | 免费观看的av | 天天干夜夜爽 | 黄色小说免费在线观看 | 18+视频网站链接 | 人人爽人人澡 | 免费在线91 | 欧美激情第28页 | 美女在线免费视频 | 婷婷六月天综合 | 婷婷丁香自拍 | 深夜免费福利网站 | 黄色片网站免费 | 久久久久久久影视 | 粉嫩av一区二区三区四区 | 午夜少妇av | 在线观看你懂的网址 | 亚洲欧美日韩精品一区二区 | 欧美日韩不卡一区 | 亚洲精品国内 | 日本精品视频在线观看 | 麻豆精品传媒视频 | 天天做日日爱夜夜爽 | 四虎免费在线观看视频 | 在线网址你懂得 | 九九九免费视频 | 久久精品福利 | 亚洲综合爱 | 在线看片一区 | 国产黄| av日韩不卡| 日本黄色大片免费 | 黄色动态图xx | 人人爽人人舔 | 日本一区二区三区免费看 | 日韩在线第一 | 综合久久久久久久 | 色综合久久久久久中文网 | 草久在线播放 | 欧美国产日韩一区二区 | 精品久久久久久久久久久久久久久久 | 欧美日韩国产精品一区二区三区 | 永久免费的av电影 | www色,com| 97精品电影院 | 久久99精品国产99久久 | 欧美精品中文在线免费观看 | 久久国产精品成人免费浪潮 | 国产高清在线不卡 | 99久久99久国产黄毛片 | 日韩av偷拍| 成年人免费在线观看网站 | 成人黄色大片在线免费观看 | 色婷婷激情网 | 久在线 | 91在线看黄| 色噜噜在线观看 | www.成人久久 | 国产精品视频最多的网站 | 天天干,夜夜爽 | 91麻豆精品国产91久久久更新时间 | 国外av在线 | 日日日日 | www.玖玖玖| 亚洲国产成人精品在线观看 | 黄色免费网战 | 天天色综合久久 | 永久免费观看视频 | 日韩一区二区三免费高清在线观看 | 亚洲丁香日韩 | 精品久久久影院 | 在线视频成人 | 国产无吗一区二区三区在线欢 | 97超碰中文字幕 | 婷婷久久一区 | 一本一本久久a久久精品综合妖精 | 国产视频在线观看一区二区 | 欧美日韩一区二区在线 | 人人爽人人爽人人片av | 亚洲成年人免费网站 | av先锋影音少妇 | 久久婷亚洲五月一区天天躁 | 91久久爱热色涩涩 | 婷婷亚洲综合五月天小说 | 深夜免费网站 | 中文字幕乱码日本亚洲一区二区 | 色综合天天天天做夜夜夜夜做 | 国产成人一区二区三区 | 狠狠色噜噜狠狠狠狠 | 欧美一区影院 | 97碰视频 | 香蕉视频最新网址 | 国产a网站 | 久久亚洲日本 | 91大神精品视频 | 亚洲视频在线观看免费 | 亚洲精品国产品国语在线 | 日本中文字幕电影在线免费观看 | 国产高清视频在线播放 | 日韩系列 | 最新国产一区二区三区 | 不卡精品视频 | 国产精品免费在线视频 | 九九九在线观看视频 | 久久久久美女 | av综合站| 亚州激情视频 | 国产精品 日本 | 免费精品视频在线 | 国内免费久久久久久久久久久 | 日韩在线高清视频 | 国产成人综合精品 | 午夜 久久 tv | 久久五月精品 | 国产精品区免费视频 | 国产中文字幕一区二区 | 久久99精品波多结衣一区 | 欧美嫩草影院 | 99久久精品国产一区 | 免费人成在线观看网站 | 日韩成人免费在线电影 | 五月开心六月伊人色婷婷 | 国产第一页在线播放 | 97视频免费在线 | 国产精品一区二区三区四区在线观看 | 精品国产区 | 最新精品视频在线 | www.99热精品 | 日韩精品视频免费 | 在线观看成人网 | 伊人av综合 | 黄色免费av | 日本中文字幕在线一区 | 在线观看黄色 | 99人久久精品视频最新地址 | 日韩精品一区二区在线观看视频 | 日韩在线免费观看视频 | 97人人艹| a级一a一级在线观看 | 免费大片黄在线 | 久久精品视频18 | 91高清免费在线观看 | 激情五月播播久久久精品 | 欧美激情精品 | 丁香婷婷综合色啪 | 午夜av色 | 午夜精品av| 亚洲经典视频在线观看 | 久久国产精品免费观看 | 亚洲va欧美va人人爽 | 国产免费不卡 | 色婷婷一区| 免费看色的网站 | 国产精品国产三级国产 | 99精品在线视频播放 | 丝袜av网站 | 久草在线资源免费 | 色婷婷在线观看视频 | 激情婷婷色 | 天天激情天天干 | 亚洲国内精品 | 亚洲 精品在线视频 | 久久久精品网 | 久久九九影院 | 国产大尺度视频 | 亚洲欧美精品一区 | 久久精品成人 | 人成在线免费视频 | 欧美一级片 | 久久久天堂 | 久久国产精品视频 | 蜜桃视频成人在线观看 | 成人免费视频视频在线观看 免费 | 伊香蕉大综综综合久久啪 | 日韩电影中文,亚洲精品乱码 | 国产99久久久久久免费看 | 国产一级a毛片视频爆浆 | 中文字幕在线免费播放 | 九九热在线精品 | 色www永久免费 | 欧美精品乱码99久久影院 | 在线观看精品一区 | 欧美日韩国产免费视频 | 国产成人精品一区二区在线观看 | 久久久 激情 | 久久国产经典视频 | 色婷婷一 | 在线观看不卡视频 | 亚洲影视九九影院在线观看 | 麻豆国产电影 | 久久久久久久久久久久久国产精品 | 麻豆传媒视频在线播放 | 国产一级片播放 | 狠狠操在线 | 操操操夜夜操 | 婷婷六月天在线 | 色视频网站在线观看一=区 a视频免费在线观看 | 国产福利精品一区二区 | 国产一区网 | 六月婷婷网 | 中文字幕在线观看你懂的 | 欧美一级日韩免费不卡 | 成人影片免费 | 亚洲一级片免费观看 | 国产永久免费高清在线观看视频 | 91网站免费观看 | 亚洲午夜av电影 | 免费在线观看的av网站 | 天天插天天爱 | 99久久精品免费看国产免费软件 | 美女福利视频 | 人人射av| 免费国产一区二区 | 一区久久久 | 69国产精品成人在线播放 | 欧美日韩后 | 久久 在线 | www.狠狠 | 国产不卡在线看 | 欧洲精品在线视频 | 日韩久久精品一区 | 欧美激情精品久久 | 日日干天夜夜 | 亚洲精品小视频在线观看 | 国产99免费视频 | 中文字幕免费高清av | 成人免费看片98欧美 | 国产亚洲成人精品 | 日日干夜夜干 | 亚洲欧美视频 | 免费观看一级特黄欧美大片 | 成人在线视频免费观看 | 日韩电影一区二区三区 | 99视频| 精品乱码一区二区三四区 | 天天综合视频在线观看 | 国产精品久久麻豆 | 日韩av电影免费在线观看 | 亚洲天堂网在线视频观看 | 99一级片| 婷婷亚洲综合 | 99re国产| 久久视频免费在线观看 | 天堂网av在线| 天天综合久久 | 97色在线观看免费视频 | 久久99久久99精品免视看婷婷 | 男女啪啪免费网站 | 国产精品2018 | 麻豆传媒视频在线 | www.天天操.com | 视频三区| 国产精品成人av电影 | 国产中文字幕国产 | 在线免费黄色片 | 日韩欧美一区二区在线播放 | 国产精品 美女 | 久久手机免费视频 | 四虎天堂 | 亚洲日本va在线观看 |