Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26

    [JAVA] Ridirezione dell'output di un comando esterno su un file di testo

    Ciao...
    Allora...ho questo probelma..
    Da un'applicazione java eseguo il dump di un database mysql richiamando, col metodo exec(), il comando mysqldump.
    Vorrei che l'esecuzione del comando fosse rediretta su di un file quindi in pratica il comando che passo alla exec diventa:
    /usr/bin/mysqldump -uuser -ppassword dbname tablename > filename.sql
    Il problema č che il dump funziona ma la redirezione dell'output no...
    La sintassi č gusta infatti da riga di comando funziona tutto..
    mi sapreste aiutare??
    In alternativa avrei pensato di creare uno stream di output e leggere una riga per volta riscrivendola su un file..ma come faccio a sapere quando finisce lo stream?

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    lo stream finisce quando available == 0 oppure quando il processo termina
    prova anche a creare il processo con exec("comando", arraypar) e arraypar č un array ">", "file"

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    ora provo con exec("comando", arraypar)...
    mi puoi fare un esempio sull'available == 0??
    Grazie

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    se hai un inputStream in genere funziona
    while (IS.available != 0) {
    IS.read();
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    non va nemmeno con exec(cmdarray,args)

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    26
    il problema l'ho risolto....
    o meglio..l'ho aggirato..ho dato l'opzione -r al mysqldump e la ridirezione la fa quello..
    perō mi paicerebbe sapere perchč nell'altro modo non funge...:master:

  7. #7
    codice:
          Process proc = Runtime.getRuntime().exec(comando);
          PrintReader in = new PrintReader(proc.getInputStream());
          PrintWriter out = new PrintWriter( proc.getOutputStream(), true);
    Blink@go

    "Non tutto quel che č oro brilla, Ne gli erranti sono perduti; Il vecchio ch'č forte non s'aggrinza, Le radici profonde non gelano.Dalle ceneri rinascerā un fuoco, L'ombra sprigionerā una scintilla, Nuova sarā la lama ormai rotta, E re quei ch'č senza corona."

    ------------
    Lang: java 1.4.1 Eclipse

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.