Entrada/Salida

JCH2
28 de Febrero del 2003
He hecho un problema para leer desde el teclado. El programa se compila bien, pero en la ejecución aparece un cartel que "This document is read only" y no me permite entrar nada por el teclado. Que puedo hacer? o me mejor, me pueden enviar un ejemplo sencillo de entrada/salida para ver su funcionamiento?

gscalise
28 de Febrero del 2003
Podrías explicar un poco mejor de qué se trata el programa, qué estas utilizando (Swing? Consola?), como accedes al archivo (RandomAccessFile, por ejemplo), etc?

JCH2
28 de Febrero del 2003
Te voy a explicar. Estoy empezando en esto de la programación en Java. Lo que estoy haciendo es una aplicación sencilla para probar la entrada , digamos de un caracter o una cadena o un número a través del teclado. Deseo aprender como se hace esto para poder implementarlo en aplicaciones de mayor envergadura. Aquí te voy a adjuntar el pequeñísimo programa. Es bien sencillo pero creo que me puede mostrar la funcionalidad que deseo. Espero que puedas ayudarme. Yo estaba usando la función (Syatem.in.read()) pero no me hace nada. Este es el programa:

import java.io.*;
class Entrada
{

public static void main(String args[])
{

try
{

System.out.println("Hola: Entre un número");
int n;
n=(int)System.in.read();
System.out.println("El número entrado es\t"+n);
}
catch(IOException e)
{
System.out.println("Error de entrada");
}
}
}

Responde lo más rápido posible.
Saludos

gscalise
28 de Febrero del 2003
OK, ya entendí lo que quieres hacer...
En realidad la lectura de datos se hace, por lo general, con Readers. Los readers reciben distintas clases de Streams (System.in es un InputStream, por ejemplo, y es el que necesitas usar en tu ejemplo) y son capaces de recibir datos mas variados. La funcionalidad varia con cada reader.

//
import java.io.*;

public class EjemploLectura {
public static void main(String args[])
{
BufferedReader flujoE = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Ingrese un numero: ");
String datoEntrado = flujoE.readLine();
int resultado = Integer.parseInt(datoEntrado);
System.out.println("El dato ingresado es "+resultado);
}
}