2007-11-06
读写RMS 的两种方法
最近在做项目中, 在客户端要创建一个RMS给服务端读取,服务端已经写好了。但因为不知道服务端是好何读取的, 而我又是一个新手,所以在网上找了许多关于读写RMS的方法。我们知道RMS的读写都是用byte[], 网上说的大部分都是用
ByteArrayOutputStream/DataOutputStream写数据,而用ByteArrayInputStream/DataInputStream 来读数据。其用法如下:
假设要把String strHello = "Hello, string!";写入RMS,写数据的代码:
而读数据的代码:
当我用这个方法写数据入RMS,项目运行时却发现服务返回是" {Hello,string!"。一时间我不知是错在哪里(很奇怪的,在output
window里我想copy这个字符串时,是copy不了的,如果不copy ‘{’,就可以。)。
后来我看了服务器读数据时的代码才知道,服务器读数据时直接用rec.toString();返回数据的。所以我把读写数据直接用String类
的方法就可以了。
写数据的代码:
读数据:
所以在读写RMS时的方法要用同一类型,不然就会得到意想不到的结果...
ByteArrayOutputStream/DataOutputStream写数据,而用ByteArrayInputStream/DataInputStream 来读数据。其用法如下:
假设要把String strHello = "Hello, string!";写入RMS,写数据的代码:
ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream dos = new DataOutputStream(baos); dos.writeUTF(strHello); byte[] rec = baos.toByteArray(); .......//把rec写入rms baos.close(); dos.close();
而读数据的代码:
...... ByteArrayInputStream bais = new ByteArrayInputStream(rec); //rec是 从rms读取出来的byte[] 类型 DataInputStream dis = new DataInputStream(bais); strHello = dis.readUTF(); bais.close(); dis.close();
当我用这个方法写数据入RMS,项目运行时却发现服务返回是" {Hello,string!"。一时间我不知是错在哪里(很奇怪的,在output
window里我想copy这个字符串时,是copy不了的,如果不copy ‘{’,就可以。)。
后来我看了服务器读数据时的代码才知道,服务器读数据时直接用rec.toString();返回数据的。所以我把读写数据直接用String类
的方法就可以了。
写数据的代码:
byte[] rec = strHello.getBytes(); .....
读数据:
..... strHello = rec.toString();
所以在读写RMS时的方法要用同一类型,不然就会得到意想不到的结果...
发表评论
- 浏览: 4101 次
- 性别:

- 来自: 广州

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
JAVA对象比较器Comparator
如果对2个string比较,需要小到大,和大到小排序,是不是要写2个实现?? 一 ...
-- by volking -
JAVA对象比较器Comparator
如果对2个string比较,需要小到大,和大到小排序,是不是要写2个实现??
-- by volking -
request与getServletCont ...
Returns a String containing the real pat ...
-- by spiritfrog -
JAVA对象比较器Comparator
不错!!
-- by RomKK -
黑莓BlackBerry 模拟器上 ...
程序中调用浏览器如下2条语句 BrowserSession brs = Brow ...
-- by yl6575613






评论排行榜