PDA

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....

andbin
14-12-2006, 14:47
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.

andbin
14-12-2006, 15:03
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!

andbin
14-12-2006, 15:40
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:

andbin
14-12-2006, 16:15
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!