mercoledì 2 marzo 2016

Java leggere formattazione da database


Capita in Java, di dover generare dei file, ovviamente ogni file generato deve avere delle specifiche, per esempio un csv, nonostante la "c" stia per "comma" (ovvero virgola) puo' avere come separatore di campo qualsiasi carattere, idem per il fine riga. Puo' essere accapo (\n), ; etc.

Questo non e' un problema se scrivete direttamente nel codice, il che non e' un problema se le specifiche non cambiano mai. Siccome le specifiche cambiano, e le mamme invecchiano, e' bene parametrizzare questi valori e pescarli da qualche parte.

Questo qualche parte puo' essere un file o un database, il problema che si presenta e' lo stesso. Ovvero che java non riconosce o lo "\" e quello che lo segue come un terminatore di riga, ma lo tratta come se fosse un letterale (quindi \\n p.es). Anche se provate in unicode il problema rimane esattamente lo stesso (visto che c'e' \ davanti...).

La soluzione ce la offre Apache con StringEscapeUtils scaricabile da qui con il metodo statico StringEscapeUtils.unescapeJava(String) il quale ci restituisce la stringa "escapata" per java. La classe ne contiene altri ovviamente sia di escape che unescape, per csv, html, sql, xml etc...

Alla prossima!

Nessun commento:

Posta un commento

I messaggi non appaiono subito ma a seguito dell'approvazione di un moderatore. Siete pregati di seguire le seguenti regole