|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
从一个编程语言的普及程度来将,一个好的IDE是至关中要的,而现在的java的IDE虽然已经很好了,但是和.net比起来还是稍微差一些的,这是个客观事实。java要想普及的更好。DE是必须加以改进的。
前段工夫一向忙着做J2EE服务器与C++客户真个项目。终究,项目告一段落,有一些劳绩在这里与人人分享。
Java代码
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
/**
* 仅仅合用于 Java 与 C++ 通信中,收集流剖析与天生利用
*
* 上下位交换(Big-Endian 年夜头在前 & Little-Endian 小头在前)。
* 举例而言,有一个4字节的数据0x01020304,要存储在内存中或文件中编号0˜3字节的地位,两种字节序的分列体例分离以下:
*
* Big Endian
*
* 低地点 洼地址
* ---------------------------------------------------->
* 地点编号
* | 0 | 1 | 2 | 3 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | 01 | 02 | 03 | 04 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*
* Little Endian
*
* 低地点 洼地址
* ---------------------------------------------------->
* 地点编号
* | 0 | 1 | 2 | 3 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
* | 04 | 03 | 02 | 01 |
* +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
*
* Java则一致利用big形式
* c中的unsigned short 对应着java中的char两个字节,无标记
* c的无标记int,short,byte字节数组,响应转换成java的long,char,short
*
* @author Snowolf
* @version 1.0
* @since 1.0
*/
public abstract class CIOUtil {
public static final String CHARSET = "UTF-8";
/**
* 从输出流中读布尔
*
* @param is
* @return
* @throws IOException
*/
public static boolean readBoolean(DataInputStream is) throws IOException {
return is.readBoolean();
}
/**
* 从流中读定长度字节数组
*
* @param is
* @param s
* @return
* @throws IOException
*/
public static byte[] readBytes(DataInputStream is, int i)
throws IOException {
byte[] data = new byte[i];
is.readFully(data);
return data;
}
/**
* 从输出流中读字符
*
* @param is
* @return
* @throws IOException
*/
public static char readChar(DataInputStream is) throws IOException {
return (char) readShort(is);
}
/**
* 从输出流中读双精度
*
* @param is
* @return
* @throws IOException
*/
public static double readDouble(DataInputStream is) throws IOException {
return Double.longBitsToDouble(readLong(is));
}
/**
* 从输出流中读单精度
*
* @param is
* @return
* @throws IOException
*/
public static float readFloat(DataInputStream is) throws IOException {
return Float.intBitsToFloat(readInt(is));
}
/**
* 从流中读整型
*
* @param is
* @return
* @throws IOException
*/
public static int readInt(DataInputStream is) throws IOException {
return Integer.reverseBytes(is.readInt());
}
/**
* 从流中读长整型
*
* @param is
* @return
* @throws IOException
*/
public static long readLong(DataInputStream is) throws IOException {
return Long.reverseBytes(is.readLong());
}
/**
* 从流中读短整型
*
* @param is
* @return
* @throws IOException
*/
public static short readShort(DataInputStream is) throws IOException {
return Short.reverseBytes(is.readShort());
}
/**
* 从输出流中读字符串 字符串 布局为一个指定字符串字节长度的短整型+实践字符串
*
* @param is
* @return
* @throws IOException
*/
public static String readUTF(DataInputStream is) throws IOException {
short s = readShort(is);
byte[] str = new byte[s];
is.readFully(str);
return new String(str, CHARSET);
}
/**
* 向输入流中写布尔
*
* @param os
* @param b
* @throws IOException
*/
public static void writeBoolean(DataOutputStream os, boolean b)
throws IOException {
os.writeBoolean(b);
}
/**
* 向输入流中写字节数组
*
* @param os
* @param data
* @throws IOException
*/
public static void writeBytes(DataOutputStream os, byte[] data)
throws IOException {
os.write(data);
}
/**
* 向输入流中写字符
*
* @param os
* @param b
* @throws IOException
*/
public static void writeChar(DataOutputStream os, char b)
throws IOException {
writeShort(os, (short) b);
}
/**
* 向输入流中写双精度
*
* @param os
* @param d
* @throws IOException
*/
public static void writeDouble(DataOutputStream os, double d)
throws IOException {
writeLong(os, Double.doubleToLongBits(d));
}
/**
* 向输入流中写单精度
*
* @param os
* @param f
* @throws IOException
*/
public static void writeFloat(DataOutputStream os, float f)
throws IOException {
writeInt(os, Float.floatToIntBits(f));
}
/**
* 向输入流中写整型
*
* @param os
* @param i
* @throws IOException
*/
public static void writeInt(DataOutputStream os, int i) throws IOException {
os.writeInt(Integer.reverseBytes(i));
}
/**
* 向输入流中写长整型
*
* @param os
* @param l
* @throws IOException
*/
public static void writeLong(DataOutputStream os, long l)
throws IOException {
os.writeLong(Long.reverseBytes(l));
}
/**
* 向输入流中写短整型
*
* @param os
* @param s
* @throws IOException
*/
public static void writeShort(DataOutputStream os, short s)
throws IOException {
os.writeShort(Short.reverseBytes(s));
}
/**
* 向输入流中写字符串 字符串 布局 为 一个指定字符串字节长度的短整型+实践字符串
*
* @param os
* @param str
* @throws IOException
*/
public static void writeUTF(DataOutputStream os, String str)
throws IOException {
byte[] data = str.getBytes(CHARSET);
writeShort(os, (short) data.length);
os.write(data);
}
}
<p>
如果你学习的是市场营销,是销售,也许参加大课堂的学习会更合适,因为你的工作能力中有个基础就是搭建自己的人脉, |
|