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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Cedric ROCHEFOLLE
Le #402145
"Sylvie MOREL"
BufferedInputStream out = new BufferedInputStream(p.getInputStream());
byte [] sortie = new byte[45000000]; // probleme de taille?????
out.read(sortie);
Il faut faire une boucle

while(out.available()>0) {
// ecrit ce qui arrive dans le fichier
}
Comme ca, ca s'arrete des que tous est fini.

Cedric

Sylvie MOREL
Le #402103
j'ai essayé mais mon fichier est vide :-(.

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:
"Sylvie MOREL"
BufferedInputStream out = new BufferedInputStream(p.getInputStream());
byte [] sortie = new byte[45000000]; // probleme de taille?????
out.read(sortie);


Il faut faire une boucle
while(out.available()>0) {
// ecrit ce qui arrive dans le fichier
}
Comme ca, ca s'arrete des que tous est fini.

Cedric





Cedric ROCHEFOLLE
Le #405902
"Sylvie MOREL" news:
j'ai essayé mais mon fichier est vide :-(.


As-tu fais un ps.flush() avant de ps.close();

Cedric

Sylvie MOREL
Le #405842
non mais j'ai fait un System.out.println("test") dans la boucle while et
il ne m'a rien affiché. Donc le out.available()>0 ne marche pas :-(.
Pourquoi?

Cedric ROCHEFOLLE wrote:
"Sylvie MOREL" news:

j'ai essayé mais mon fichier est vide :-(.



As-tu fais un ps.flush() avant de ps.close();

Cedric





Publicité
Poster une réponse
Anonyme