View Full Version : Java: copiare un txt da riga di comando
Negative_creep
14-12-2006, 14:38
Ciao a tutti, ho creato un programma per la copia dei file (ad esempio txt) e funziona, ora vorrei modificarlo in modo tale da mettere il nome del file sorgente e il nome della copia direttamente sulla linea di comando:
Es:
java copia grafico.txt copiagrafico.txt
Copia quindi grafico.txt e crea una copia chiamata copiagrafico.
Sò che bisognava modificare l'array di stringhe inserendo valore args [0] per il file sorgente e args [1] per la copia, ma non funziona esce un errore: ArrayIndexOutOfBoundsExcemption 1.
public static void main(String [] args) <----
Come faccio?Vorrei postare il programma ma utilizzo delle librerie create dal professore....
Sò che bisognava modificare l'array di stringhe inserendo valore args [0] per il file sorgente e args [1] per la copia, ma non funziona esce un errore: ArrayIndexOutOfBoundsExcemption 1.Nota che non devi "modificare" i valori in args! Devi solo testare prima se hai argomenti sufficienti per quello che devi fare (testa args.length) e quindi usare args[n].
Comunque posta il codice che vediamo ...
Negative_creep
14-12-2006, 14:58
ho fatto come dici tu....e dà:
0
come risultato.
public static void main (String[] args)
{
if (args.length == 2)
{
String srcFile = args[0];
String dstFile = args[1];
// .... tutto il resto che devi fare ....
}
}Da usare appunto con: java tuaclasse srcfile dstfile
Negative_creep
14-12-2006, 15:32
Grande!!!!Funziona! Però ti prego spiega come mai inizialmente metti la condizione if (args.length == 2) se sappiamo che la lunghezza dell'array String args è 0..
Grazie di nuovo sopratto per la tua velocità nella risposta!
Negative_creep
14-12-2006, 15:34
anzi che scemo siccome è falsa eseguirà sempre il codice quindi tolgo la condizione....infatti funziona comunque!
Il test del numero di argomenti devi farlo .... altrimenti se viene passato al programma un numero inferiore di argomenti (uno o nessuno), allora args[1] o anche args[0] non esistono!!! Pertanto ti beccheresti una eccezione ArrayIndexOutOfBoundsException.
Negative_creep
14-12-2006, 16:04
Ok....Grazie mille! :D
Ahh ultima cosa altrimenti non capisco bene, se l'array di string args ha dimensione 0 come mai possiamo assegnare la posizione 0 e 1 senza che dia errore?
Sò che è stupida però sono agli inizi... :rolleyes:
Ahh ultima cosa altrimenti non capisco bene, se l'array di string args ha dimensione 0 come mai possiamo assegnare la posizione 0 e 1 senza che dia errore?Cosa intendi per "assegnare la posizione 0 e 1" .... :confused:
Se tu lanci un programma Java con:
java nomeclasse pippo pluto 123
allora args.length vale 3, args[0] contiene "pippo", args[1] contiene "pluto" e args[2] contiene "123".
Negative_creep
14-12-2006, 17:18
ok...ora ho capito! :p Grazie ancora!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.