Java - getOutputStream

 
Vista:

getOutputStream

Publicado por Leif (7 intervenciones) el 25/10/2018 12:53:58
Hola a todos!
Estoy aplicando el método getOutputStream() para llevar a cabo un programa (P1) que ejecute un segundo programa (P2). El P2 recibe una cadena de texto y la imprime, y el P1 se encarga de enviar dicha cadena y obtener el stream de entrada.

Para la introducción de datos en el primer programa utilizo este código:

1
2
3
4
5
6
7
File d1=new File(".\\bin");
ProcessBuilder p1=new ProcessBuilder("java", "package.class");
p1.directory(d1);
Process p=p1.start();
OutputStream os=p.getOutputStream();
os.write("Esta es mi cadena\n".getBytes());
os.flush();

Hasta ahí todo bien, pero me gustaría saber sí es posible que, en vez de enviar un dato fijo (Esta es mi cadena), al ejecutar P1 se pueda introducir una cadena de datos a través del teclado en vez de que esta sea fija.

Un saludo,
y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

getOutputStream

Publicado por Tom (1831 intervenciones) el 25/10/2018 16:05:37
¿¿ Has sido capaz de idear eso, y no sabes cómo leer una cadena de texto ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

getOutputStream

Publicado por Leif (7 intervenciones) el 25/10/2018 16:30:47
El problema está en que ninguno de los métodos que utilizo para leer cadenas de texto parece ser compatible con getOutStream. He probado tanto con Scanner como con .read, pero no envían los datos a través de .write. Desconozco el fallo por el que se da exactamente esto, por eso preguntaba directamente por el método optimo para llevarlo a cabo en este caso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

getOutputStream

Publicado por Leif (7 intervenciones) el 25/10/2018 18:38:32
Bueno, después de desconectar un rato me di cuenta de que me estaba enredando yo solo. Demasiadas horas al ordenador te pueden dejar un poco zombi.

Por si a alguien le pudiese ser de utilidad, adjunto el método utilizado para introducir los datos que he empleado:

1
2
3
4
5
6
7
8
9
10
11
File d1=new File(".\\bin");
ProcessBuilder p1=new ProcessBuilder("java", "package.class");
p1.directory(d1);
Process p=p1.start();
OutputStream os=p.getOutputStream();
Scanner sc = new Scanner(System.in);
int b = sc.nextInt();
String b1 = b+"\n";
byte [] ba = b1.getBytes();
os.write(ba);
os.flush();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar