Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

récupérer tous les caractères d'un System.exec et les stocker dans un fich ier

4 réponses
Avatar
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

4 réponses

Avatar
Cedric ROCHEFOLLE
"Sylvie MOREL" wrote
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

Avatar
Sylvie MOREL
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" wrote

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





Avatar
Cedric ROCHEFOLLE
"Sylvie MOREL" wrote in message
news:
j'ai essayé mais mon fichier est vide :-(.


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

Cedric

Avatar
Sylvie MOREL
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" wrote in message
news:

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



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

Cedric