Java 输出流只保存了16位的一半
这就是我得到的:Java 输出流只保存了16位的一半,java,save,outputstream,16-bit,Java,Save,Outputstream,16 Bit,这就是我得到的: Main: buff.clearColor((short)0x00ffff00); - - - - - - Buffer: DataOutputStream dataOutputStream = new DataOutputStream(out); for (int i : colorBuffer) { dataOutputStream.writeShort(i); } void clearColor(short c) { for(int i=0;
Main:
buff.clearColor((short)0x00ffff00);
- - - - - -
Buffer:
DataOutputStream dataOutputStream = new DataOutputStream(out);
for (int i : colorBuffer) {
dataOutputStream.writeShort(i);
}
void clearColor(short c)
{
for(int i=0; i<width*height; i++)
{
colorBuffer [i] = c;
}
}
Main:
浅黄色透明色((短)0x00ffff00);
- - - - - -
缓冲区:
DataOutputStream DataOutputStream=新的DataOutputStream(输出);
for(int i:colorBuffer){
dataOutputStream.writeShort(i);
}
void clearColor(短c)
{
对于(int i=0;iwriteShort(i)
写一个短的右键
一个短的只有2个字节……而你需要4个字节,不是吗
实际上,(短)0x00ffff00
已经将其剪切。使用int
例如,你是对的,我试图将其保存为int,但我使用了dataOutputStream.write(I);而不是dataOutputStream.writeInt(I);因此你使用buff.clearColor((int)0x00ffff00)和dataOutputStream.writeInt(I);它仍然不起作用?write(I)
只写入i
的底部字节0xff00
不是16位的一半,而是16位。投票结束这个问题。这是一个转移视线的问题,只会让未来的访问者对StackOverflow感到困惑。