{"id":4605,"date":"2021-07-12T13:35:10","date_gmt":"2021-07-12T11:35:10","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=4605"},"modified":"2021-07-12T13:35:10","modified_gmt":"2021-07-12T11:35:10","slug":"inselraus-parse-und-print-methoden-in-datatypeconverter-fuer-hex-ausgaben","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2021\/07\/inselraus-parse-und-print-methoden-in-datatypeconverter-fuer-hex-ausgaben\/","title":{"rendered":"Inselraus: parse*(\u2026)- und print*()-Methoden in DatatypeConverter f\u00fcr Hex-Ausgaben"},"content":{"rendered":"<p>Das javax.xml.bind-Paket bietet eine Klasse DatatypeConverter, die eigentlich f\u00fcr die Abbildung von XML-Typen auf Java-Typen gedacht ist, doch auch so einige n\u00fctzliche Methoden bereitstellt. Wir finden in der Klasse statische parse*(String)-Methoden und print*(\u2026)-Methoden: Die ersten konvertieren einen String in diverse Datentypen \u2013 etwa short parseShort(String) \u2013, und die zweiten formatieren einen bestimmten Datentyp in einen String \u2013 etwa String printShort(short). F\u00fcr die meisten Methoden gibt es mit String.valueOf(\u2026) und den parse*(\u2026)\/toString(\u2026)-Methoden in den Wrapper-Klassen bessere Alternativen, und die Umwandlung von Datumswerten und Flie\u00dfkommazahlen ist nicht lokalisiert, doch hervorzuheben sind folgende zwei Methoden:<\/p>\n<p>final class javax.xml.bind.DatatypeConverter<\/p>\n<ul>\n<li>staticbyte[]parseHexBinary(StringlexicalXSDHexBinary)<\/li>\n<li>staticStringprintHexBinary(byte[]val)<\/li>\n<\/ul>\n<p>Mit diesen statischen Methoden k\u00f6nnen leicht Byte-Arrays in die String-Repr\u00e4sentationen hexadezimal konvertiert werden. Das ist n\u00f6tig, wenn etwa Bytes in einer Text-Konfigurationsdatei abgelegt werden sollen. DatatypeConverter bietet auch Methoden f\u00fcr eine Base64-Kodierung, allerdings sind die geschachtelten Klassen in java.util.Base64 \u00fcblicher.<\/p>\n<p>Beispiel:<\/p>\n<p>Konvertiere ein Byte-Array in eine String-Repr\u00e4sentation, einmal im klassischen Hex-Format, einmal in Base64-Kodierung:<\/p>\n<pre>byte[] bytes = { 1, 2, 3, (byte) 254, (byte) 255 };\r\nString s1 = DatatypeConverter.printHexBinary( bytes );\r\nString s2 = DatatypeConverter.printBase64Binary( bytes );\r\nSystem.out.println( s1 ); \/\/ 010203FEFF\r\nSystem.out.println( s2 ); \/\/ AQID\/v8=\r\n\/\/ Arrays.equals( bytes, DatatypeConverter.parseHexBinary( s1 ) ) == true\r\n\/\/ Arrays.equals( bytes, DatatypeConverter.parseBase64Binary( s2 ) ) == true<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Das javax.xml.bind-Paket bietet eine Klasse DatatypeConverter, die eigentlich f\u00fcr die Abbildung von XML-Typen auf Java-Typen gedacht ist, doch auch so einige n\u00fctzliche Methoden bereitstellt. Wir finden in der Klasse statische parse*(String)-Methoden und print*(\u2026)-Methoden: Die ersten konvertieren einen String in diverse Datentypen \u2013 etwa short parseShort(String) \u2013, und die zweiten formatieren einen bestimmten Datentyp in einen [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-4605","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=4605"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4605\/revisions"}],"predecessor-version":[{"id":4606,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4605\/revisions\/4606"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=4605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=4605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=4605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}