Mattepuffo
Parsing dei file in Java con Apache Tika


Per parsing dei file intendo:

  • estrarre i metadati
  • estrarre il contenuto
  • visualizzare le immagini (se usiamo un componente grafico)
  • tutto ciò da tantissimi tipi di file

Questo è possibile attraverso una magnifica libreria: Apache Tika!

Oggi vi posto un estratto di un programmino che sto facendo in Java, e che prima o poi metterò sul mio canale di GitHub.

In questo esempio non ci sono componenti grafiche, quindi non potete visualizzare le immagini.

Ciò non toglie che potete aggiungere voi i componenti che vi servono.

Inoltre ho usato Maven, in quanto Apache Tika richiede diverse dipendenze.

Infine, per il design delle classi, ringrazio i suggerimenti del forum HTML.it.

Mattepuffo
Usare la classe Optional in Java


Stiamo parlando di Java 8, e non delle versioni predenti (ma penso varrà anche per l'imminente Java 9).

La classe Optional è un container di oggetti sia nulli che non-nulli.

Questo perchè ci sono vari metodi che astraggono il classico controllo sul valore nullo; in caso di valore nullo, eseguono comunque l'operazione richiesta.

Facciamo un esempio banale, andando a sommare due interi.

Mattepuffo
Java StringTokenizer


La così detta "tokenization" è un processo attraverso il quale spezziamo la stringa in più parti, dove ogni parte è appunto chiamata token.

Java ci mette a disposizione la classe StringTokenizer per spezzare la stringa in token, ed è molto facile usarla.

Se state obbiettando che già possiamo String.split, vi dico che in parte avete ragione, ma ci stanno delle differenze in termini di flessibilità e performance.

Qui potete un articolo che mostra alcune differenze.

Mattepuffo
Usare switch multipli in Java


Volevo usare switch al posto di vari if/else, ma avevo anche bisogno di usare test multipli.

In sostanza il case doveva controllare più valori contemporaneamente.

Di base in Java non è possibile, a meno di non usare un "trucco".

Mattepuffo
Includere il path delle dipendenze in Maven


Una volta finito di creare un programma in Java usando Maven, ho provato a lanciarlo fuori dall'IDE ed ho riscontrato un problema con le dipendenze:

java.lang.NoClassDefFoundError: org/apache/tika/exception/TikaException

Classico problema perchè il Manifest non trova le librerie richieste dal programma.

In sostanza bisogna modificare il Manifest per includere la directory con le librerie.