`
- 浏览:
191860 次
- 性别:
- 来自:
上海
-
-
importjava.io.DataInputStream;
-
importjava.io.DataOutputStream;
-
importjava.io.IOException;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
publicabstractclassCIOUtil{
-
publicstaticfinalStringCHARSET="UTF-8";
-
-
-
-
-
-
-
-
-
publicstaticbooleanreadBoolean(DataInputStreamis)throwsIOException{
-
returnis.readBoolean();
-
}
-
-
-
-
-
-
-
-
-
-
publicstaticbyte[]readBytes(DataInputStreamis,inti)
-
throwsIOException{
-
byte[]data=newbyte[i];
-
is.readFully(data);
-
-
returndata;
-
}
-
-
-
-
-
-
-
-
-
publicstaticcharreadChar(DataInputStreamis)throwsIOException{
-
return(char)readShort(is);
-
}
-
-
-
-
-
-
-
-
-
publicstaticdoublereadDouble(DataInputStreamis)throwsIOException{
-
returnDouble.longBitsToDouble(readLong(is));
-
}
-
-
-
-
-
-
-
-
-
publicstaticfloatreadFloat(DataInputStreamis)throwsIOException{
-
returnFloat.intBitsToFloat(readInt(is));
-
}
-
-
-
-
-
-
-
-
-
publicstaticintreadInt(DataInputStreamis)throwsIOException{
-
returnInteger.reverseBytes(is.readInt());
-
}
-
-
-
-
-
-
-
-
-
publicstaticlongreadLong(DataInputStreamis)throwsIOException{
-
returnLong.reverseBytes(is.readLong());
-
}
-
-
-
-
-
-
-
-
-
publicstaticshortreadShort(DataInputStreamis)throwsIOException{
-
returnShort.reverseBytes(is.readShort());
-
}
-
-
-
-
-
-
-
-
-
publicstaticStringreadUTF(DataInputStreamis)throwsIOException{
-
shorts=readShort(is);
-
byte[]str=newbyte[s];
-
-
is.readFully(str);
-
-
returnnewString(str,CHARSET);
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteBoolean(DataOutputStreamos,booleanb)
-
throwsIOException{
-
os.writeBoolean(b);
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteBytes(DataOutputStreamos,byte[]data)
-
throwsIOException{
-
os.write(data);
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteChar(DataOutputStreamos,charb)
-
throwsIOException{
-
writeShort(os,(short)b);
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteDouble(DataOutputStreamos,doubled)
-
throwsIOException{
-
writeLong(os,Double.doubleToLongBits(d));
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteFloat(DataOutputStreamos,floatf)
-
throwsIOException{
-
writeInt(os,Float.floatToIntBits(f));
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteInt(DataOutputStreamos,inti)throwsIOException{
-
os.writeInt(Integer.reverseBytes(i));
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteLong(DataOutputStreamos,longl)
-
throwsIOException{
-
os.writeLong(Long.reverseBytes(l));
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteShort(DataOutputStreamos,shorts)
-
throwsIOException{
-
os.writeShort(Short.reverseBytes(s));
-
}
-
-
-
-
-
-
-
-
-
publicstaticvoidwriteUTF(DataOutputStreamos,Stringstr)
-
throwsIOException{
-
byte[]data=str.getBytes(CHARSET);
-
writeShort(os,(short)data.length);
-
os.write(data);
-
}
-
-
}
再写个测试类
-
importjava.io.ByteArrayInputStream;
-
importjava.io.ByteArrayOutputStream;
-
importjava.io.DataInputStream;
-
importjava.io.DataOutputStream;
-
importjava.io.IOException;
-
-
importorg.junit.Test;
-
importstaticorg.junit.Assert.*;
-
-
-
-
-
-
-
-
publicclassCIOUtilTest{
-
-
-
-
-
-
@Test
-
publicfinalvoidtestBoolean()throwsIOException{
-
booleaninput=true;
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeBoolean(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
booleanoutput=CIOUtil.readBoolean(is);
-
-
bais.close();
-
-
assertEquals(input,output);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestBytes()throwsIOException{
-
byte[]input="中文".getBytes("UTF-8");
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeBytes(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
byte[]output=CIOUtil.readBytes(is,6);
-
-
bais.close();
-
-
assertArrayEquals(input,output);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestChar()throwsIOException{
-
charinput='中';
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeChar(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
charoutput=CIOUtil.readChar(is);
-
-
bais.close();
-
-
assertEquals(input,output);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestDouble()throwsIOException{
-
doubleinput=1.23456789d;
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeDouble(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
doubleoutput=CIOUtil.readDouble(is);
-
-
bais.close();
-
-
assertEquals(input,output,9);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestFloat()throwsIOException{
-
floatinput=1.23456789f;
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeFloat(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
floatoutput=CIOUtil.readFloat(is);
-
-
bais.close();
-
-
assertEquals(input,output,9);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestInt()throwsIOException{
-
intinput=1;
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeInt(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
intoutput=CIOUtil.readInt(is);
-
-
bais.close();
-
-
assertEquals(input,output);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestLong()throwsIOException{
-
longinput=1l;
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeLong(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
longoutput=CIOUtil.readLong(is);
-
-
bais.close();
-
-
assertEquals(input,output);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestShort()throwsIOException{
-
shortinput=1;
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeShort(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
shortoutput=CIOUtil.readShort(is);
-
-
bais.close();
-
-
assertEquals(input,output);
-
}
-
-
-
-
-
-
-
@Test
-
publicfinalvoidtestUTF()throwsIOException{
-
Stringinput="中文支持";
-
ByteArrayOutputStreambaos=newByteArrayOutputStream();
-
DataOutputStreamos=newDataOutputStream(baos);
-
-
CIOUtil.writeUTF(os,input);
-
-
byte[]b=baos.toByteArray();
-
baos.flush();
-
baos.close();
-
-
ByteArrayInputStreambais=newByteArrayInputStream(b);
-
DataInputStreamis=newDataInputStream(bais);
-
-
Stringoutput=CIOUtil.readUTF(is);
-
-
bais.close();
-
-
assertEquals(input,output);
-
}
-
-
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
netty通信时经常和底层数据交互,C语言和java的数据类型和范围不同,通信时需要转化或兼容,附件为字节码、进制常用的转换类。
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
数据类型转换的基本原则 垃圾回收(GC) Java 集合框架 数组 字符串 GOF 设计模式 SOLID (单一功能、 开闭原则、 里氏替换、 接口隔离以及依赖反转) 设计原则 抽象类与接口 Java 基础, 如 equals 和 hashcode ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java Remote Desktop 是一个Java 的远程桌面软件,支持很多特性例如文件传输、数据压缩、颜色转换、键盘鼠标事件转换等等。 最短路径算法实现 k-shortest-paths 这是一个实现了 Yen 的排名算法的无环路径的项目 ...
Java数据压缩与传输实例 1个目标文件 摘要:Java源码,文件操作,数据压缩,文件传输 Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、...