Criller ha scritto:
- Lanciare il jar "normalmente" e non tramite prompt o file bat
Cosa intendi per "Lanciare il jar normalmente" ? Semplicemente con doppio-click sul jar?
Sì, è ovviamente possibile ma presuppone che: a) ci sia un JRE "pubblico" installato e b) che l'estensione .jar sia associata al JRE (cosa che è così quando installi un JRE pubblico).
Poi se l'utente ha smanettato con le associazioni ed ha associato .jar a es. WinZip, 7-Zip o che altro .... beh, affari suoi.
Ma c'è anche un'altra questione: perlomeno su Windows l'associazione predefinita del .jar va ad avviare java
w.exe che è il launcher della JVM
SENZA la "console". Quindi va bene solo per avviare applicazioni desktop "grafiche".
Mentre la tua è una applicazione "console" perché usi lo standard-input/output
Criller ha scritto:
- Slegarmi dal vincolo di chiamare i file .dtt "(1).dtt", "(2).dtt", "(3).dtt", ...
Se vuoi puoi chiedere all'utente una directory e poi andare tu a cercare tutti i file che hanno l'estensione che ti interessa. Basta usare i metodi di "list" della classe java.io.File, usando un apposito filtro (vedi javadoc).
Criller ha scritto:
sarebbe ancora meglio poter creare un frame dove poter droppare i file (anche più di uno alla volta)
Sì, anche questo mi pare sia possibile ma ovviamente richiede altro codice.
Criller ha scritto:
- Ho notato che il programma è abbastanza lento. I buffer potrebbero aiutare?
Beh, stai leggendo e scrivendo 1 byte per volta!! Ovviamente
è lento.
Se devi copiare pari-pari tutto il resto del file, la soluzione semplice e tipica è leggere e scrivere a blocchi di N byte. Crei un array di es. 1024 byte e leggi e scrivi da questo (attenzione alla lunghezza dell'ultimo blocco!).
Questo
è già un concetto di "buffering", non servirebbero i BufferedXXXStream.
Criller ha scritto:
Potete anche dirmi quali sono le classi e come impostarle (non mi serve il programma già fatto).
Cioè??