快速业务通道

Java与C底层数据类型转换 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
= str.getBytes(CHARSET); writeShort(os, (short) data.length); os.write(data); } }

Java与C底层数据类型转换(2)

时间:2011-04-13 javaeye snowolf

再写个测试类

Java代码

import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import org.junit.Test; import static org.junit.Assert.*; /**   *   * @author Snowolf   * @version 1.0   * @since 1.0   */ public class CIOUtilTest { /**   * 测试布尔值   *   * @throws IOException   */ @Test public final void testBoolean() throws IOException { boolean input = true; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream os = new DataOutputStream(baos); CIOUtil.writeBoolean(os, input); byte[] b = baos.toByteArray(); baos.flush(); baos.close(); ByteArrayInputStream bais = new ByteArrayInputStream(b); DataInputStream is = new DataInputStream(bais); boolean output = CIOUtil.readBoolean(is); bais.close(); assertEquals(input, output); } /**   * 测试字节数组   *   * @throws IOException   */ @Test public final void testBytes() throws IOException { byte[] input = "中文".getBytes("UTF-8"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream os = new DataOutputStream(baos); CIOUtil.writeBytes(os, input); byte[] b = baos.toByteArray(); baos.flush(); baos.close(); ByteArrayInputStream bais = new ByteArrayInputStream(b); DataInputStream is = new DataInputStream(bais); byte[] output = CIOUtil.readBytes(is, 6); bais.close(); assertArrayEquals(input, output); } /**   * 测试字符   *   * @throws IOException   */ @Test public final void testChar() throws IOException { char input = ''中''; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream os = new DataOutputStream(baos); CIOUtil.writeChar(os, input); byte[] b = baos.toByteArray(); baos.flush(); baos.close(); ByteArrayInputStream bais = new ByteArrayInputStream(b); DataInputStream is = new DataInputStream(bais); char output = CIOUtil.readChar(is); bais.close(); assertEquals(input, output); } /**   * 测试双精度   *   * @throws IOException   */ @Test public final void testDouble() throws IOException { double input = 1.23456789d; ByteArrayOutputStream baos = new ByteArrayOutputStream(); DataOutputStream os = new DataOutputStream(baos); CIOUtil.writeDouble(os, input); byte[] b = baos.toByteArray(); baos.flush(); baos.close(); ByteArrayInputStream bais = new ByteArrayInputStream(b); DataInputStream is = new DataInputStream(bais); double output = CIOUtil.readDouble(is); bais.close(); assertEquals(input, output, 9); } /**   * 测试单精度   *   * @throws IOException   */ @Test public final void testFloat() throws IOException { float input = 1.23456789f; ByteArr

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号