Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Blue_box en 2 Marzo 2005, 03:14 am



Título: Java pregunta de inicio
Publicado por: Blue_box en 2 Marzo 2005, 03:14 am
Como se pueden recibir datos del usuario por ejemplo en c: se usa scanf('%d',&valor) en java como se hace.


Título: Re: Java pregunta de inicio
Publicado por: Ambolius en 2 Marzo 2005, 04:07 am
En java te tienes que crear un buffer de entrada de datos, definiendo ese buffer para que lea de teclado.
Una vez creado el buffer con la funcion readLine() de BufferedReader lo leerias. Aqui te dejo el codigo:

Código:
//Creacion del Buffer "teclado" de lectura de System.in (El teclado):

   BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));

//Creacion de String "aux" para almacenar lo que se escriba por teclado:

   String aux;

//Lectura de teclado:

   aux=teclado.readLine();



La entrada de datos puede crear excepciones de Entrada/Salida, por lo que debes tratar la posibilidades de que estas excepciones ocurren. Se pueden tratar con un simple "throws IOException" en la funcion main:

Código:
public static void main (String[] args) throws IOException{
}

O con los try _ catch:

Código:
String aux;
try{
   BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
   aux=teclado.readLine();
}catch(IOException e){
  //Aqui llegaria si se produjera una excepcion del tipo IOException
  System.println("Error de Entrada/Salida");

}

 


Título: Re: Java pregunta de inicio
Publicado por: Blue_box en 3 Marzo 2005, 04:31 am
Gracias Ambollus lo probare ahora mismo, una pregunta mas:

Código:
class mensaje
{
 void mostrar() { System.out.println("Nuevo Mensaje en Bandeja... "); }
}

class usar
{
 public static void main(String arg[])
 {
  char salir='n';
  mensaje objeto= new mensaje();
 
  do
  {
   objeto.mostrar();
   try { salir=(char) System.in.read(); }
   catch(java.io.IOException e) {};
  }while(salir!='s' || salir!='S');
 
  System.out.println(" *** Programa Finalizado ***");
  }
}
Me manda mensajes de que hay problemas con main como especifico ese tipo de detalles?.


Título: Re: Java pregunta de inicio
Publicado por: Ambolius en 3 Marzo 2005, 09:37 am
Por partes...

La clase que tiene la funcion Main (En este caso usar) ha de ser publica:

Código:
public class usar

Los programas en java siguen una serie de normas (No es obligatorio seguirlas al pie de la letra, pero es recomendable) como por ejemplo:
- Los nombres de las clases empiezan por mayuscula: public Clase.
- Si tuvieran mas de una palabra, cada palabra empezaria con Mayuscula: public ClaseUno

El codigo seria bueno que lo tabulases para su mejor comprension:

Código:
class mensaje{
void mostrar() { System.out.println("Nuevo Mensaje en Bandeja... "); }
}

public class usar{
public static void main(String arg[]){
char salir='n';
mensaje objeto= new mensaje();
do{
objeto.mostrar();
try { salir=(char) System.in.read(); }
catch(java.io.IOException e) {};
}while(salir!='s' || salir!='S');

System.out.println(" *** Programa Finalizado ***");
}
}

En cuanto al programa, supongo que lo que querras es que aparezca "Nuevo mensaje en Bandeja" hasta que se deje de pulsar la 's' o 'S'. Pues bien, he probado tu codigo y no funciona del todo bien  :P asique me he tomado la libertad de modificartelo un poco (Aplicandole lo de la lectura desde teclado con BufferedReader. Aqui te lo dejo, funcional. Si tienes alguna duda comentamela...

Código:
import java.io.*;

class mensaje{
void mostrar() { System.out.println("Nuevo Mensaje en Bandeja... "); }
}

public class usar{
public static void main(String arg[]){
String salir="n";
mensaje objeto= new mensaje();
BufferedReader teclado=new BufferedReader(new InputStreamReader(System.in));
do{
objeto.mostrar();
try {
salir=teclado.readLine();
}catch(java.io.IOException e) {};
}while(salir.equals("s") || salir.equals("S"));

System.out.println(" *** Programa Finalizado ***");
}
}


Título: Re: Java pregunta de inicio
Publicado por: Blue_box en 4 Marzo 2005, 01:39 am
Gracias Ambolius, otra pregunta, en este momento estoy haciendo labores sociales en una escuela, pero me aburro como no te imaginas por lo que me he dedicado para aprender java el problema esta en que, ahora trato de programas applets pero no los veo ya que si hago una pagina en html no se pueden ver y yo supongo que debe ser por el SO. ya que estas maquinas manejan MacOs X 10.2 con ningun explorador he podido ver las paginas que creo y por ende los applet que programo.
Tendras alguna sugerencia?.


Título: Re: Java pregunta de inicio
Publicado por: Ambolius en 4 Marzo 2005, 09:45 am
Lo bueno de la programacion en Java es la portabilidad entre sistemas operativos. Para poder ejecutar un programa java (O subprograma Applet) necesitaras tener instalado la maquina virtual de java.

Aqui te dejo las instrucciones para instalar java en un MAC, por si te hacen falta:
http://www.apple.com/macosx/features/java/