je relation où pour chaque enregistrement il y a colonne de BYTEA (UTF-8) codant pour 3 nombres dans l'ordre suivant:JAVA pilote JDBC PostgreSQL: Parse nombres codés comme objet BYTEA
octets 0-1: numéro 1
octets 2-3: numéro 2
octets 4-6: numéro 3
Comment puis-je analyser les données binaires vers des numéros lisibles?
Actuellement, j'ai cela et ne sais pas comment continuer:
Class.forName(dbDriver);
Connection connection = DriverManager.getConnection(dbUrl, dbUser, dbPass);
Statement st = connection.createStatement();
String query = "SELECT ...";
ResultSet rs = st.executeQuery(query);
while (rs.next()) {
byte[] data = rs.getBytes(1);
//TODO Parse
}
Merci,
Vous semblez utiliser l'octet 4 deux fois. J'ai supposé que c'est une faute de frappe, et ce nombre 3 est des octets 5-6, pas 4-6, c'est-à-dire 2 octets de long, même que le numéro 1 et 2. – Andreas
@Andreas Salut, mon erreur. J'ai édité. les 2 premiers sont 2 octets, le troisième est 3 octets et peut être négatif. – michael
Si seulement le troisième nombre peut être négatif, alors vous devez vraiment mieux définir le format numérique. Par exemple. sont les nombres stockés en binaire? Si oui, les numéros signés sont-ils stockés dans [complément à deux] (https://en.wikipedia.org/wiki/Two%27s_complement)? Ou est le signe stocké comme un octet par lui-même? Si ce n'est pas binaire, les numéros sont-ils stockés sous forme de texte? Ou [BCD] (https://en.wikipedia.org/wiki/Binary-coded_decimal) (emballé ou déballé)? Ou autre chose? – Andreas