Я использую DataOutOutputStream.writeShort();
метод для написания короткого текста в текстовом файле, но с помощью этого метода я могу писать только -32768
до 32767
, но я не хочу писать -ve, но нет такого метода, как writeUnsignedShort();
в DataOutputStream
, есть ли способ написать unsigned short
в текстовом файле???
DataOutOutputStream.writeShort(); метод для написания короткого текста в текстовом файле,
DataOutputStream предназначен только для записи двоичных файлов, если вы хотите записать в текстовый файл, вы должны использовать PrintWriter (или какой-либо другой Writer)
Я не хочу писать -ve короткий, но нет метода writeUnsignedShort(); в DataOutputStream, есть ли способ записать unsigned short в текстовый файл
Для двоичных файлов есть только байты, а не -ve или +ve, остальные находятся в вашем воображении;) Если вы хотите написать unsigned short для двоичного кода, вы можете сделать это
int unsignedShort = 0 to 65535
dos.writeShort((short) unsignedShort);
и читать его с помощью
int unsignedShort = dos.readShort() & 0xFFFF;
Чтобы написать unsigned short в текстовый файл, это точно так же, как запись int
pw.print(unsignedShort);
Вы можете прочитать это с помощью Scanner.nextInt()
Java не имеет Unsigned типов данных, кроме char, SO вы можете использовать int для char и использовать putChar() следующим образом:
myBuffer.putChar((char) my16BitInt);
То, что вы ищете, это тип данных char
. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html Он эквивалентен короткому знаку без знака, который вы ищете.
char
в текстовый файл, вы получите что-то очень отличное от числа. ;)
char
является единственным беззнаковым типом данных на 16 бит в Java, что, на мой взгляд, отстой.
Вам нужно будет представлять его как целое число с маской 0X0000FFFF
int
?