`

Java数据传输之消息字符串应用

 
阅读更多

在Java中进行数据通信一般有几种方法,一是:传送字节数组;二是:java流;三是:字符串。

第三中情况一般用在消息通信(JMS等)中。可能在发送消息时需要传送Java对象,但实际只允许发送字符串。这里就涉及到Object——>String(发送消息),String——>Object(接受消息)的转换。

 

转换工具类在附件中,示例代码如下:

package test.search;

import java.io.Serializable;

import com.bokesoft.myerp.common.ByteUtil;

class Person implements Serializable {
	
	private static final long serialVersionUID = 1L;
	private String name;
	private int age;
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
	public int getAge() {
		return age;
	}
	
	public String toString() {
		return "person: " + name + " age: " + age;
	}
} 

public class Test {
	public static void main(String[] args) throws Throwable {
		Person p = new Person();
		p.setName("小强");
		p.setAge(20);
		
		BASE64Encoder e = new BASE64Encoder();
		byte[] pBytes = ByteUtil.toBytes(p);
		String pStr = new String(e.encode(pBytes));
		
		BASE64Decoder d = new BASE64Decoder();
		byte[] pdBytes = d.decodeBuffer(pStr);
		Person pd = (Person)ByteUtil.toObject(pdBytes);
		System.out.println(p == pd);  //false 因为消息传递可能跨越很多的JVM,实质是
				//根据传送的字节数组去构造相同的一个对象,只是对象地址不同(在不同的JVM中对象的地址肯定不同了),
				//其它都是相同的;即使在同一个JVM中也是重新构造一个相同的对象,对象地址不同,其它都是相同的。
		System.out.println(p);	//person: 小强 age: 20
		System.out.println(pd);	//person: 小强 age: 20
	}
}

 

分享到:
评论

相关推荐

    Java中Socket通信-服务端和客户端双向传输字符串实现示例代码.rar

    Java中Socket通信-服务端和客户端双向传输字符串实现示例代码。在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的...

    C#、java 字符流跨平台数据解压缩

    字符串采用UTF-8编码获得byte数组,保证两端通用,如果应用对编码有要求,两端同时改为其他编码方式也可以 从Java和C#的代码看,两者代码上有细微差别,但是思路方面两者基本是一样的 另外一个备忘,Java里边,...

    Java之Base64编解码.pptx.pptx

    Java Base64编码原理 Java Base64编码是一种用64个字符表示任意二进制...Java Base64编解码广泛应用于网络传输、数据存储等领域,如在HTTP协议中传输二进制数据时,常用Base64编码进行加密和压缩,提高数据传输效率。

    JAVA上百实例源码以及开源项目源代码

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包---java 源码 大量 实例

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    JAVA_API1.6文档(中文)

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类...

    java jdk实列宝典 光盘源代码

    applications和applet,applications可以在控制台直接运行,与其他高级编程语言没有太大区别,而java的特色在于它具有编制小应用程序的功能,applet可以在internet上传输并在兼容java的web浏览器中运行的程序;...

    JAVA上百实例源码以及开源项目

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包4

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包3

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    java源码包2

     设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang)并发送给李四,这里发送的是公钥的数组字节  通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到...

    Java2实用教程.rar

    5 3字符串与基本数据的相互转化 5 4对象的字符串表示 5 5StringTokenizer类 5 6字符串与字符 字节数组 5 7StringBuffer类 5 8正则表达式 习题 第6章时间 日期和数字 6 1Date类 6 2Calendar类 6 3Math类 6 4...

    Java 1.6 API 中文 New

    java.util 包含 collection 框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 java.util.concurrent 在并发编程中很常用的实用工具类。...

    JAVA SHA256Util工具类

    SHA256Util 是一个 Java 工具类,提供静态方法 getSHA256 来计算字符串的 SHA-256 散列值。这个类利用 Java 的 MessageDigest 类,将输入字符串转换成十六进制格式的散列值。 适用人群 软件开发人员需要在应用程序...

    java开源包4

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包11

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包6

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包101

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

    java开源包9

    Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...

Global site tag (gtag.js) - Google Analytics