(Java), Пишущий в прямом порядке байтов файла

Я думаю, что одна причина состоит в том, что некоторые люди чувствуют, что самая важная часть того, будет ли язык принят, - насколько хороший язык . К сожалению, вещи редко так просты. Например, я утверждал бы, что самым большим фактором позади принятия Python не является сам язык (хотя это довольно важно). Самой большой причиной, почему Python так популярен, является своя огромная стандартная библиотека и еще более многочисленное сообщество сторонних библиотек.

Языки как Clojure или F# могут быть исключением из правила на этом рассмотрении, что они создаются на JVM/CLR. В результате у меня нет ответа для них.

17
задан Tony Stark 8 September 2009 в 15:43
поделиться

3 ответа

Может быть, вам стоит попробовать что-нибудь вроде этого:

ByteBuffer buffer = ByteBuffer.allocate(1000); 
buffer.order(ByteOrder.LITTLE_ENDIAN);         
buffer.putChar((char) 12);                     
buffer.putChar((char) 259);                    
buffer.putChar((char) 3);                      
buffer.putInt(1);                              
buffer.putInt(1);                              
byte[] bytes = buffer.array();     
32
ответ дан 30 November 2019 в 10:53
поделиться
​​

ByteBuffer, по-видимому, лучший выбор. Вы также можете написать несколько вспомогательных функций вроде этой:

public static void writeShortLE(DataOutputStream out, short value) {
  out.writeByte(value & 0xFF);
  out.writeByte((value >> 8) & 0xFF);
}

public static void writeIntLE(DataOutputStream out, int value) {
  out.writeByte(value & 0xFF);
  out.writeByte((value >> 8) & 0xFF);
  out.writeByte((value >> 16) & 0xFF);
  out.writeByte((value >> 24) & 0xFF);
}
8
ответ дан 30 November 2019 в 10:53
поделиться

Обратите внимание на ByteBuffer , в частности, на метод « порядок ». ByteBuffer - благословение для тех из нас, кому нужно взаимодействовать ни с чем, кроме Java.

7
ответ дан 30 November 2019 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: