récupérer tous les caractères d'un System.exec et les stocker dans un fich ier
Le
Sylvie MOREL
Bonjour,
j'exécute un appel système et j'emmerai stocker le résultat de
l'exécution dans un fichier. Le problème c'est que je n'arrive pas à
stocker tous les caractères récupérés.
Voici mon code:
String [] para = ..;
p = Runtime.getRuntime().exec(para);
BufferedInputStream out = new BufferedInputStream(p.getInputStream());
byte [] sortie = new byte[45000000]; // probleme de taille?????
out.read(sortie);
int i=0;
PrintStream ps2 = new PrintStream(new FileOutputStream("res.dot"));
while ((i<sortie.length)&&(sortie[i] != 0)){
ps2.print((char)sortie[i]);
i++;
}
ps2.close();
Quelqu'un aurait-il une idée?
Merci d'avance
j'exécute un appel système et j'emmerai stocker le résultat de
l'exécution dans un fichier. Le problème c'est que je n'arrive pas à
stocker tous les caractères récupérés.
Voici mon code:
String [] para = ..;
p = Runtime.getRuntime().exec(para);
BufferedInputStream out = new BufferedInputStream(p.getInputStream());
byte [] sortie = new byte[45000000]; // probleme de taille?????
out.read(sortie);
int i=0;
PrintStream ps2 = new PrintStream(new FileOutputStream("res.dot"));
while ((i<sortie.length)&&(sortie[i] != 0)){
ps2.print((char)sortie[i]);
i++;
}
ps2.close();
Quelqu'un aurait-il une idée?
Merci d'avance

Poser une question


while(out.available()>0) {
// ecrit ce qui arrive dans le fichier
}
Comme ca, ca s'arrete des que tous est fini.
Cedric
Voici le code:
Process p;
try {
String [] para = ....;
p = Runtime.getRuntime().exec(para);
// crée le fichier
BufferedInputStream out = new BufferedInputStream(p.getInputStream());
PrintStream ps = new PrintStream(new FileOutputStream("test"));
while(out.available()>0) {
ps.print((char)out.read());
}
ps.close();
Merci :-)
Cedric ROCHEFOLLE wrote:
As-tu fais un ps.flush() avant de ps.close();
Cedric
il ne m'a rien affiché. Donc le out.available()>0 ne marche pas :-(.
Pourquoi?
Cedric ROCHEFOLLE wrote: