黄色网页视频 I 影音先锋日日狠狠久久 I 秋霞午夜毛片 I 秋霞一二三区 I 国产成人片无码视频 I 国产 精品 自在自线 I av免费观看网站 I 日本精品久久久久中文字幕5 I 91看视频 I 看全色黄大色黄女片18 I 精品不卡一区 I 亚洲最新精品 I 欧美 激情 在线 I 人妻少妇精品久久 I 国产99视频精品免费专区 I 欧美影院 I 欧美精品在欧美一区二区少妇 I av大片网站 I 国产精品黄色片 I 888久久 I 狠狠干最新 I 看看黄色一级片 I 黄色精品久久 I 三级av在线 I 69色综合 I 国产日韩欧美91 I 亚洲精品偷拍 I 激情小说亚洲图片 I 久久国产视频精品 I 国产综合精品一区二区三区 I 色婷婷国产 I 最新成人av在线 I 国产私拍精品 I 日韩成人影音 I 日日夜夜天天综合

Java對象流

系統 2383 0

? 在基于C/S模式下的Java編程中大多用到各種IO流的操作,ObjectStream(對象流)是其中的一種。
? 下面這個列子說明Java對象流在C/S模式下的使用優(yōu)于字節(jié)流:
? Java對象流

TestClient.java

?

package com.test.Client;
import java.awt.*;
import java.awt.event.*;
import com.test.conServer.*;
import javax.swing.*;
import com.test.common.*;
public class TestClient extends JFrame implements ActionListener
{
?JLabel jl1,jl2;
?JButton jb1,jb2;
?JTextField jtf1;
?JPasswordField jpf;
?public static void main(String[] args) {
??// TODO Auto-generated method stub
??TestClient tc=new TestClient();
?}
?
?? public TestClient()
?? {
??? jl1=new JLabel("帳號:");
??? jl2=new JLabel("密碼:");
??? jb1=new JButton("登陸");
??? jb1.addActionListener(this);
??? jb2=new JButton("取消");
??? jb2.addActionListener(this);
??? jtf1=new JTextField(10);
??? jpf=new JPasswordField(10);
??? this.setLayout(new FlowLayout());
??? this.add(jl1);
??? this.add(jtf1);
??? this.add(jl2);
??? this.add(jpf);
??? this.add(jb1);
??? this.add(jb2);
??? this.setSize(180, 130);
??? this.setLocation(200, 200);
??? this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
??? this.setIconImage(new ImageIcon("images/QQ.jpg").getImage());
??? this.setVisible(true);
???
?? }
public void actionPerformed(ActionEvent arg0) {
?// TODO Auto-generated method stub
?if(arg0.getSource()==jb1)
?{
??/*User u=new User();
??u.setUserID(jtf1.getText());
??u.setUserPwd(new String(jpf.getPassword()));
??*/
??TestCreateUser tcu=new TestCreateUser(jtf1.getText(),new String(jpf.getPassword()));
??//TestClientConServer tccs=new TestClientConServer(u);
??
?}
?if(arg0.getSource()==jb2)
?{
??System.exit(0);
?}
?
}
}

?

User.java

?

package com.test.common;

public class User implements java.io.Serializable {
?private String userID;
?private String userPwd;
?public String getUserID() {
??return userID;
?}
?public void setUserID(String userID) {
??this.userID = userID;
?}
?public String getUserPwd() {
??return userPwd;
?}
?public void setUserPwd(String userPwd) {
??this.userPwd = userPwd;
?}

}

?

TestClientConServer.java

?

package com.test.conServer;
import java.io.*;
import java.net.*;
import com.test.common.*;
public class TestClientConServer {
?public TestClientConServer(Object o)
?{
??try{
???
???Socket s=new Socket("127.0.0.1",9999);
???ObjectOutputStream oos=new ObjectOutputStream(s.getOutputStream());
???oos.writeObject(o);
??}catch(Exception e){
???e.printStackTrace();
??}
?}

}

TestCreateUser .java

?

package com.test.conServer;
import com.test.common.*;
public class TestCreateUser {
?public TestCreateUser(String userID,String userPwd)
?{
??User u=new User();
??u.setUserID(userID);
??u.setUserPwd(userPwd);
??TestClientConServer tccs=new TestClientConServer(u);
??
??
?}

}

TestServer.java

?

package com.test.Server;
import java.io.*;
import java.net.*;
import com.test.common.*;
public class TestServer {
?public static void main(String arg[]) throws ClassNotFoundException
?{
??TestServer ts=new TestServer();
?}
?public TestServer() throws ClassNotFoundException
?{
??try {
???System.out.print("服務器正在監(jiān)聽……");
???ServerSocket ss=new ServerSocket(9999);
???Socket s=ss.accept();
???ObjectInputStream ois=new ObjectInputStream(s.getInputStream());
???User u=(User) ois.readObject();
???System.out.print(u.getUserID()+u.getUserPwd());
??} catch (IOException e) {
???// TODO Auto-generated catch block
???e.printStackTrace();
??}
??
?}

}

??????在上圖中可以看出Server和Client都有一個相同的包名(com.test.common)和一個相同的類。(User.java)。這是實現服務器端和客戶端實例一個User對象的過程。User在實例化的同時也被 Java.io.Serializable 序列化。

????? 用了對象流就可以直接用User中的get方法中取得相應的值,不用像字節(jié)流還要去readLine后再去使用分隔符。

????? 這是在我知識范圍內的一種見解。希望大家指出不足!

Java對象流


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論