Как написать unsigned short на текстовый файл в Java

1

Я использую DataOutOutputStream.writeShort(); метод для написания короткого текста в текстовом файле, но с помощью этого метода я могу писать только -32768 до 32767, но я не хочу писать -ve, но нет такого метода, как writeUnsignedShort(); в DataOutputStream, есть ли способ написать unsigned short в текстовом файле???

  • 0
    Я предполагаю, что это пишет в двоичном формате. Продвинуть это к int ?
Теги:

4 ответа

2

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()

1

Java не имеет Unsigned типов данных, кроме char, SO вы можете использовать int для char и использовать putChar() следующим образом:

myBuffer.putChar((char) my16BitInt);
  • 0
    используя это, я могу написать только до 255, потому что предел ascii составляет от 0 до 255, но я хочу написать как можно больше чисел + ve, так что мне делать ???
  • 1
    Вы можете использовать до 65 535 чисел, используя char вместо от -32768 до 32767 в коротком int.
0

То, что вы ищете, это тип данных char. http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html Он эквивалентен короткому знаку без знака, который вы ищете.

  • 0
    Если вы напечатаете char в текстовый файл, вы получите что-то очень отличное от числа. ;)
  • 0
    @PeterLawrey Я знаю это. Я также знаю, что char является единственным беззнаковым типом данных на 16 бит в Java, что, на мой взгляд, отстой.
0

Вам нужно будет представлять его как целое число с маской 0X0000FFFF

Ещё вопросы

Сообщество Overcoder
Наверх
Меню