Foros del Web » Programación para mayores de 30 ;) » Java »

Error java.io.BufferedInputStream@1fb8ee3

Estas en el tema de Error java.io.BufferedInputStream@1fb8ee3 en el foro de Java en Foros del Web. porq' me tira esta ecepcion??? codigo: import java.lang.Runtime.*; import java.lang.Process; import java.util.Scanner; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.*; public class conectividad ...
  #1 (permalink)  
Antiguo 30/08/2008, 17:44
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 5 meses
Puntos: 0
Error java.io.BufferedInputStream@1fb8ee3

porq' me tira esta ecepcion???

codigo:

import java.lang.Runtime.*;
import java.lang.Process;
import java.util.Scanner;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.*;
public class conectividad {

public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub

Process n1;
Process n2;
String hola="Respuesta desde 192.168.1.1: bytes=32 tiempo<1m TTL=64";
Runtime runtime = Runtime.getRuntime();
String path = "C://batch.bat";


FileWriter archivoescritura = new FileWriter("c:\\conectividad.txt");
PrintWriter archivoSalida = new PrintWriter(archivoescritura);

n2=runtime.exec(path);

archivoSalida.println(n2.getInputStream());

archivoSalida.close();


File archivo1=new File("c:\\conectividad.txt");
Scanner archivolectura = new Scanner(archivo1);
while (archivolectura.hasNext())
{String linea = archivolectura.nextLine();

System.out.println(linea);

if (linea==hola)
{System.out.println("Hay conectividad");}
else
{System.out.println("No hay conectividad");}

}

}

}
  #2 (permalink)  
Antiguo 31/08/2008, 00:27
Avatar de HackmanC  
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Error java.io.BufferedInputStream@1fb8ee3

Hola,

Creo que tienes algunos errores que producen que no obtengas el resultado, pero no me es posible corregirlos simplemente o hacerlo breve; así que agregue comentarios al código. En la parte final va una implementación para que puedas adaptarlo a tus necesidades.

Código:
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class conectividad {

	public static void main(String[] args) throws IOException {
		// Process n1;
		Process n2;
		String hola = "Respuesta desde 192.168.1.1: bytes=32 tiempo<1m TTL=64";
		Runtime runtime = Runtime.getRuntime();
		/* 
		 * path --> C:\\batch.bat ó C:/batch.bat
		 * El caracter \ es el de escape.
		 * ver java.io.File.separator
		 */
		String path = "C://batch.bat";

		FileWriter archivoescritura = new FileWriter("c:\\conectividad.txt");
		PrintWriter archivoSalida = new PrintWriter(archivoescritura);

		n2 = runtime.exec(path);

		/*
		 * n2.getInputStream() --> Eso es un objeto y no estas trasladando
		 * los datos que mandó el proceso n2. Solamente el Objeto convertido a toString()
		 * algo como "java.io.BufferedInput...."
		 */
		archivoSalida.println(n2.getInputStream());

		/* 
		 * close() --> Posiblemente el proceso n2 todavía no ha terminado
		 * de escribir todo en su stream, el proceso todavía no ha salido.
		 */
		archivoSalida.close();

		File archivo1 = new File("c:\\conectividad.txt");
		/*
		 * Scanner --> Se utiliza para leer archivos de datos con formato,
		 * pero no tiene mucho sentido para leer sólo lineas en Strings.
		 */
		Scanner archivolectura = new Scanner(archivo1);
		while (archivolectura.hasNext()) {
			String linea = archivolectura.nextLine();

			/*
			 * linea --> Invariablemente va a imprimir algo como
			 * java.io.BufferedInputStream@XXX o algo parecido.
			 */
			System.out.println(linea);

			/*
			 * linea nunca va a ser igual a hola, por que es un
			 * string que dice "java.io.BufferedInputSt..."
			 */
			if (linea == hola) {
				System.out.println("Hay conectividad");
			} else {
				System.out.println("No hay conectividad");
			}

		}

	}

	public static void main2(String[] args) {
		String PING = "PING www.yahoo-ht3.akadns.net (69.147.76.15) 56(84) bytes of data.";
		
		try {
			java.lang.Process process = java.lang.Runtime.
				getRuntime().exec("/home/rand/batch.sh");

			process.waitFor();

			if (process.exitValue() == 0) {
				
				java.io.BufferedReader reader = new java.io.BufferedReader(
						new java.io.InputStreamReader(process.getInputStream()));
				String tester = reader.readLine();
				
				if (tester != null)
					System.out.println(tester.equals(PING) ? "Connected" : "Disconnected");
				else
					System.out.println("El proceso no devolvió nada.");
				
			} else {
				throw new java.lang.RuntimeException(
						"El proceso no se ejecutó correctamente.");
			}
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
		}
	}

}
Saludos.

ps:

Error java.io.BufferedInputStream@1fb8ee3 :
No es una excepción, el código lo imprime con esta línea:
System.out.println(linea);
Por que en el String línea esta eso : "java.io.BufferedInputStream@1fb8ee3"

Última edición por HackmanC; 31/08/2008 a las 00:40 Razón: ps
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:39.