我有一个问题。
是否有库或其他组成int&字符串到字节数组?
喜欢:
byte temparray[] = new byte[10];
int a = 10;
int b = 10;
temparray << new String("12") << a << b;
感谢。
byte[] buffer = new byte[649];
byte[] charname = this.getName().getBytes();
System.arraycopy(charname, 0 , buffer, 0, charname.length);
for(int i=0;i<16;i++) //mystery crs 16 zeros
{
buffer[i+17] = (byte)0x30;
}
buffer[34] = this.faction;
if(this.characterClass == 2)
{
buffer[40] = 2;
} else
{
buffer[40] = 1;
}
System.arraycopy(BitTools.shortToByteArray(face), 0, buffer, 42, 2);
buffer[44] = 1;
buffer[48] = (byte)this.characterClass; //class byte
buffer[52] = 2; explanation yet
buffer[54] = (byte)this.getLevel();
这是我的数据包生成器的一个例子,我想简化它,但在数据包中我只使用短路,整数和字符串。
答案 0 :(得分:5)
java.io.ByteArrayOutputStream
是一个流实现,它收集内部字节数组上的内容,您可以将其包装在java.io.OutputStreamWriter
中,以便将字符内容写入其中。
ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
Writer out = new OutputStreamWriter(byteOut, "UTF-8"); // Uses UTF-8 encoding
out.write("12");
out.write(10);
out.write(10);
out.close();
byte[] bytes = byteOut.toByteArray();
在此之后,bytes.length
只能写入byteOut
的字节。
答案 1 :(得分:0)
是。见java.io.ByteArrayOutputStream。请注意,您可以包装此流以支持编写其他类型,如String:PrintWriter pw = new PrintWriter(yourByteArrayOutputStream); pw.print("Hello");
然后使用yourByteArrayOutputStream.toByteArray();
获取字节数组。
答案 2 :(得分:0)
http://docs.oracle.com/javase/7/docs/api/
Integer.byteValue();
Double.byteValue();
String.getBytes();
// etc.
答案 3 :(得分:0)
查看String#getBytes
和ByteBuffer
。根据您的使用情况,字符集和字节顺序可能很重要。