日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Java對象流

系統 2120 0

? 在基于C/S模式下的Java編程中大多用到各種IO流的操作,ObjectStream(對象流)是其中的一種。
? 下面這個列子說明Java對象流在C/S模式下的使用優于字節流:
? 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("服務器正在監聽……");
???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方法中取得相應的值,不用像字節流還要去readLine后再去使用分隔符。

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

Java對象流


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 资溪县| 贵定县| 宁波市| 惠安县| 伽师县| 恩施市| 新竹县| 卢湾区| 阿合奇县| 江都市| 瓦房店市| 廊坊市| 临颍县| 措美县| 东兰县| 德保县| 南城县| 中卫市| 枞阳县| 珠海市| 蒙山县| 哈尔滨市| 桓台县| 汉寿县| 子长县| 萝北县| 铜陵市| 吉首市| 菏泽市| 呼和浩特市| 贺州市| 连江县| 平顶山市| 长沙市| 开阳县| 涟源市| 庄河市| 余姚市| 灵川县| 准格尔旗| 固安县|