06/10/04, 22:00:56
|
#1 (permalink)
|
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
|
FAQ's de Java
Bueno, este es un tema que ya hacia tiempo le venia faltando a este foro, asi que aqui da inicio lo que seran la FAQ's de Java, que debemos ir armando entre todos, y siguiendo el mismo esuqema que los demas foros, es decir.
Tema: Tema
Pregunta: Pregunta?
Respuesta: Respuesta
Ejemplo:
ejemplo
Donde el ejemplo si lo necesita siempre demos ponerlo entre los bloques [ PHP ] y [ /PHP ] lo que provoca que el codigo se coloree y podamos darle formato y sea mucho mas entendible
IMPORTANTE: Al poner nuevas FAQ's usen un mensaje nuevo para cada pregunta, no pongas mas de un FAQ por mensaje, pues si tenemos distribuidas las FAQ's en mensajes induviduales despues podremos hacer facilmente un indice para encontrar las respuestas mas rapido.
vamos, armemos entre todos las FAQ´s
Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
Última edición por goncafa fecha: 07/10/04 a las 07:40:38.
|
|
|
|
06/10/04, 22:18:29
|
#2 (permalink)
|
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
|
Tema: Java Principiante
Pregunta: Que es Java y para que sirve??
Respuesta: Java es un lenguage de tipo general, es decir, puedes programar cualquier cosa con el, desde un sistema operativo, hasta un pequeña aplicacion de consola. Es muy usado en el ambito WEB y de las redes, por sus capacidades nativas de comunicacion y seguridad.
Java ademas puede ser ejecutado desde dispocitivos moviles como celulares y PDA's, tambien se puede encontrar en televisores, microhondas y practicamente en lo que se te ocurra.
__________________
se despide hasta la proxima
Gonzalo Castillo
|
|
|
|
06/10/04, 22:24:07
|
#3 (permalink)
|
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
|
Tema: Arreglos
Pregunta: Como puedo declarar un arreglo??
Respuesta:
Los arreglos en Java se tratan como los objetos, es decir, para inicializar un arreglo debes emplear la misma metodologia que usas para iniciar una instancia de una clase
Ejemplo:
Código PHP:
//un arreglo de enteros de 10 posiciones
int arreglo []= new int[10];
//Un arreglo de String bidimencional de 8x8
String nombres[] = new String[8][8];
__________________
se despide hasta la proxima
Gonzalo Castillo
|
|
|
|
06/10/04, 22:31:31
|
#4 (permalink)
|
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
|
Tema: Java Basico
Pregunta: Como debo hacer compraciones de igualdad entre Cadenas??
Respuesta:
En Java los tipos String son objetos y no tipos primitivos, por ende no se pueden comparar con 2 signos iguales de esta forma ==, en vez de ello existe un metodo llamado equals() que es usado para esta funcion.
Ejemplo:
Código PHP:
String nombreUno = "Gonzalo";
String nombreDos = "Nicolas";
//hago la comparacion
if(nombreUno.equals(nombreDos)) {
//aqui no llegariamos pues no son iguales
} else {
//estas vez entraria aqui pues los objetos son diferentes
}
__________________
se despide hasta la proxima
Gonzalo Castillo
|
|
|
|
14/10/04, 08:10:46
|
#5 (permalink)
|
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
|
Tema: Java Configuracion
Pregunta: ¿Como seteo el PATH y para que sirve?
Respuesta:
Setear el PATH en tu maquina sirve para que esta sepa donde debe buscar los programas que no encuentra o desconoce.
Tener seteado en PATH de nustra maquina la ruta al \bin\ del JDK sirve para poder compilar y ejecutar nuestros programas Java desde la consola estando parados en cualquier directorio o disco local de nuestro PC, y no debemos llevar nuestros .java al \bin\ del JDK para compilalro y ejecutarlos.
Para setear nuestro path basta con abriri una sonsola (ventana DOS) o como prefieran llamarle y escribir esto
SET PATH = %PATH%;<RUTA_AL_BIN>
Donde <RUTA_AL_BIN> debes reemplazarlo pro la ruta completa a nuestro \bin\ del JDK, por ejemplo, en mi caso tengo instalado la version 1.4.2_03 del J2SE y se encuntra en la carpeta C:\j2sdk1.4.2_03\ entonces para setear mi PATH debo escribir esto
SET PATH = %PATH%;C:\j2sdk1.4.2_03\bin
el %PATH% significa que estoy agrenado ademas todas las rutas del PATH actual, es como decir en Java por ejemplo
String path = "algo";
path = path + "otro algo";
es decir, sirve para no perder lo que ya habia en el.
Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
|
|
|
|
01/11/04, 13:39:42
|
#6 (permalink)
|
Registrado: nov 2002
Ubicación: Santiago, Chile
Mensajes: 1.135
|
Tema: Configuracion
Pregunta: Por que no me funcionan las aplicaciones Java en mi winXP?
Respuesta:
La razon es pq al momento de salir al mercado windows XP, Microsoft tenia algunos problemas con SUN, la empresa propietaria de la tecnologia Java, por lo cual nustro tio decidio no colocar la Maquina Virtual de Java (JVM) en su nueva distribucion de windows, por ende, cualquier programa en Java no podria funcionar por el hecho de no existir dicha JVM.
Claro, luego los tribunales obligaron a M$ a volver a incluirla, pero lamentablemente la mayoria de las distribuciones que nos llegan son de la epoca en cuando esta no venia incluida.
Para solventar dicho problema debemos bajarnos la JVM o tambien conocida como J2RE desde el sitio oficial de SUN http://java.sun.com, cabe destacar que es completamente gratuita.
__________________
se despide hasta la proxima
Gonzalo Castillo
|
|
|
|
13/03/05, 17:06:42
|
#7 (permalink)
|
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
|
Tema: Base de datos MySQL
Pregunta Como puedo conectarme a MySQL
Respuesta Necesitas tener el driver JDBC que es el que se utiliza para hacer conecciones y query's a nuestra base de datos MySQL , puedes bajarlo desde aqui: http://www.mysql.com/products/connector/j/
Necesitas actualizar tu classpath, en el editor que estes usando o directamente desde la consola, una vez instalado correctamente, puedes usar este codigo para darte una idea.
Código:
import java.sql.*;
public class coneccionMySql
{
static String bd = "myDataBase";
static String login = "user";
static String password = "mymegapassword";
static String url = "jdbc:mysql://localhost/" + bd;
public static void main(String[] args)throws Exception
{
Connection conn = null;
try
{
//ESTABLECEMOS LA CONECCION
Class.forName("com.mysql.jdbc.Driver").newInstance();
conn = DriverManager.getConnection(url,login,password);
if (conn != null)
{
System.out.println("Conexión a base de datos " + url + " ... Ok");
//HACEMOS UNA CONSULTA
Statement stmt = conn.createStatement();
ResultSet res = stmt.executeQuery("SELECT * FROM carreras");
while(res.next())
{
String Id = res.getString("Id");
String Carrera = res.getString("Carrera");
String Facultad= res.getString("Facultad");
System.out.println(Id +" \t "+Carrera+" \t "+Facultad);
}
res.close();
stmt.close();
conn.close();
}
}
catch(SQLException ex)
{
System.out.println("\n\nHubo un error : "+ex);
}
catch(ClassNotFoundException ex)
{
System.out.println("\n\nHubo otro error!!, no se encontro el driver, revisa tu ClassPath :(\n");
System.out.println(ex);
}
}
}
Última edición por stock fecha: 08/02/06 a las 20:29:53.
|
|
|
|
18/03/05, 14:01:50
|
#8 (permalink)
|
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
|
Tema: Capturar desde el teclado en modo consola
Pregunta: Como puedo capturar caracteres desde el teclado en Java??
Respuesta: Las instrucciones System.in.read(); nos permite leer entradas desde el teclado en codigo ASCII, mediante un ciclo capturamos los caracteres introducidos hasta que se presione la tecla ENTER, almacenandolos en un STRING, ya despues, depende lo que necesitemos, lo caovertimos a Integer, Double, etc... basicamente es lo que hace la siguiente clase :)
Código:
import java.io.*;
import java.util.*;
public class MeterDatos
{
public static String readLine()
{
char nextChar;
String result = "";
boolean done = false;
while (!done)
{
nextChar = readChar();
if (nextChar == '\n')
done = true;
else if (nextChar == '\r')
{
//Do nothing.
//Next loop iteration will detect '\n'
}
else
result = result + nextChar;
}
return result;
}
public static String readLineWord()
{
String inputString = null,
result = null;
boolean done = false;
while(!done)
{
inputString = readLine();
StringTokenizer wordSource =
new StringTokenizer(inputString);
if (wordSource.hasMoreTokens())
{
result = wordSource.nextToken();
done = true;
}
else
{
System.out.println("Your input is not correct. Your input must");
System.out.println("contain at least one nonwhitespace character.");
System.out.println("Please, try again. Enter input:");
}
}
return result;
}
public static int readLineInt()
{
String inputString = null;
int number = -9999;//To keep the compiler happy.
//Designed to look like a garbage value.
boolean done = false;
while (! done)
{
try
{
inputString = readLine();
inputString = inputString.trim();
number = (Integer.valueOf(inputString).intValue());
done = true;
}
catch (NumberFormatException e)
{
System.out.println(
"Your input number is not correct.");
System.out.println("Your input number must be");
System.out.println("a whole number written as an");
System.out.println("ordinary numeral, such as 42");
System.out.println("Please, try again.");
System.out.println("Enter a whole number:");
}
}
return number;
}
public static long readLineLong()
{
String inputString = null;
long number = -9999;//To keep the compiler happy.
//Designed to look like a garbage value.
boolean done = false;
while (! done)
{
try
{
inputString = readLine();
inputString = inputString.trim();
number = (Long.valueOf(inputString).longValue());
done = true;
}
catch (NumberFormatException e)
{
System.out.println(
"Your input number is not correct.");
System.out.println("Your input number must be");
System.out.println("a whole number written as an");
System.out.println("ordinary numeral, such as 42");
System.out.println("Please, try again.");
System.out.println("Enter a whole number:");
}
}
return number;
}
public static double readLineDouble()
{
String inputString = null;
double number = -9999;//To keep the compiler happy.
//Designed to look like a garbage value.
boolean done = false;
while (! done)
{
try
{
inputString = readLine();
inputString = inputString.trim();
number = (Double.valueOf(inputString).doubleValue());
done = true;
}
catch (NumberFormatException e)
{
System.out.println(
"Your input number is not correct.");
System.out.println("Your input number must be");
System.out.println("an ordinary number either with");
System.out.println("or without a decimal point,");
System.out.println("such as 42 or 9.99");
System.out.println("Please, try again.");
System.out.println("Enter a whole number:");
}
}
return number;
}
public static float readLineFloat()
{
String inputString = null;
float number = -9999;//To keep the compiler happy.
//Designed to look like a garbage value.
boolean done = false;
while (! done)
{
try
{
inputString = readLine();
inputString = inputString.trim();
number = (Float.valueOf(inputString).floatValue());
done = true;
}
catch (NumberFormatException e)
{
System.out.println(
"Your input number is not correct.");
System.out.println("Your input number must be");
System.out.println("an ordinary number either with");
System.out.println("or without a decimal point,");
System.out.println("such as 42 or 9.99");
System.out.println("Please, try again.");
System.out.println("Enter a whole number:");
}
}
return number;
}
public static char readLineNonwhiteChar()
{
boolean done = false;
String inputString = null;
char nonWhite = ' ';//To keep the compiler happy.
while (! done)
{
inputString = readLine();
inputString = inputString.trim();
if (inputString.length() == 0)
{
System.out.println(
"Your input is not correct.");
System.out.println("Your input must contain at");
System.out.println(
"least one nonwhitespace character.");
System.out.println("Please, try again.");
System.out.println("Enter input:");
}
else
{
nonWhite = (inputString.charAt(0));
done = true;
}
}
return nonWhite;
}
public static boolean readLineBoolean()
{
boolean done = false;
String inputString = null;
boolean result = false;//To keep the compiler happy.
while (! done)
{
inputString = readLine();
inputString = inputString.trim();
if (inputString.equalsIgnoreCase("true")
|| inputString.equalsIgnoreCase("t"))
{
result = true;
done = true;
}
else if (inputString.equalsIgnoreCase("false")
|| inputString.equalsIgnoreCase("f"))
{
result = false;
done = true;
}
else
{
System.out.println(
"Your input number is not correct.");
System.out.println("Your input number must be");
System.out.println("one of the following:");
System.out.println("the word true,");
System.out.println("the word false,");
System.out.println("the letter T,");
System.out.println("or the letter F.");
System.out.println("You may use either uppercase");
System.out.println("or lowercase letters.");
System.out.println("Please, try again.");
System.out.println("Enter input:");
}
}
return result;
}
public static char readChar()
{
int charAsInt = -1; //To keep the compiler happy
try
{
charAsInt = System.in.read();
}
catch(IOException e)
{
System.out.println(e.getMessage());
System.out.println("Fatal error. Ending Program.");
System.exit(0);
}
return (char)charAsInt;
}
public static char readNonwhiteChar()
{
char next;
next = readChar();
while (Character.isWhitespace(next))
next = readChar();
return next;
}
}
compila la clase, si lo notaste los metodos son de tipo "static", entonces, no es necesario creear objeto de esta clase, unicamente pon el archivo .class en la misma carpeta que tu aplicacion.
para usarla solamente seria asi:
String mytext = MeterDatos.readLine();
double myVar = MeterDatos.readLineDouble();
etc....
Última edición por stock fecha: 18/03/05 a las 14:08:09.
|
|
|
|
08/04/05, 15:18:18
|
#9 (permalink)
|
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
|
Tema: Exception's
Pregunta: Como manejo las Exepciones y que son??
Respuesta: Las Exceptions son lanzadas por algunos metodos, y se lanzan cuando sucede algun error con el metodo, por ejemplo cuando una Base de Datos no se conecta correctamente o cuando no encuentra una tabla en la base de datos, etc.... los metodos lanzan exepciones que nos avisan que a ocurrido mal, cuando ocurre esto, tenemos 2 alternativas, Relanzarlas o Capturarlas, si las queremos relanzar pues no sabriamos que sucedio, en cambio si las capturamos podemos mostrar el error o mandar un mensaje en especifico.
Para relanzar las exeception unicamente le agregamos throws Exception al metodo.
Código PHP:
public class LanzarExceptions{
public static void main(String arg[])throws Exception{
int num;
num = Integer.parseInt(arg[0]);
System.out.println("El numero introducido es: " + num);
}
}
Para capturarlas usamos TRY,CATCH, FINALLY algo asi:
Código PHP:
public class CapturarExceptions{
public static void main(String arg[]){
int num;
try{
num = Integer.parseInt(arg[0]);
System.out.println("El numero introducido es: " + num);
}catch(Exception error){
System.out.println("El numero introducido no es valido, asegurate de que no contenga letras y que sea un numero entero. El error es: " + error);
}
finally{
//do nothing jejejeje :)
}
}
}
Si te fijaste es mejor capturarlas y asi mostrar un mensaje con el error ocacionado.
-------- Agosto 15, 2006 -----------
Cabe mencionar que tambien podemos capturar diferentes errores, y desplegar diferentes mensajes o realizar otras cosas, dependiendo del error generado, en los ejemplos anteriores unicamente he puesto Exception, pero tembien existen clases que extienden de esta y que son mas especificas, como por ejemplo ClassNotFoundException, IOException, BadLocationException, etc... y todas estas heredan de la superclase Exception, ahora bien para capturar una por una lo hacemos asi:
Código PHP:
public class Capturar{
public static void main(String arg[]){
int num;
try{
num = Integer.parseInt(arg[0]);
System.out.println("El numero introducido es: " + num);
}catch(ArrayIndexOutOfBoundsException error){
System.out.println("Es necesario pasar un numero como parametro.");
}catch(NumberFormatException e){
System.out.println("La entrada "+arg[0]+" no es un numero!");
}finally{
//do nothing jejejeje :)
}
}
}
-------- Febrero 8, 2006 -----------
Es importante mencionar que el bloque finally Siempre se ejecuta, independientemente de que se ocacione un error o no, esto es muy util cuando trabajamos con base de datos, pues nos aseguramos de cerrar la conexion a la DB y no dejarla abierta.
Última edición por stock fecha: 15/08/06 a las 15:14:31.
Razón: Anotaciones extras
|
|
|
|
11/04/05, 18:54:47
|
#10 (permalink)
|
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
|
Tema: Archivos
Pregunta: Como puedo escribir y leer un archivo??
Respuesta: Para poder escribir o leer un archivo, usamos la clase FileWriter para escribir y FileReader para leer el contenido, despues creamos unos buffers para poder extraer el contenido o bien para escribir el contenido, tal y como se muestra en el codigo siguiente.
Código PHP:
import java.io.*;
public class Insertar{
public static String Archivo;
Insertar(String arch){
this.Archivo = arch;
}
public static void Escribir(String datos){
try
{
FileWriter fw = new FileWriter(Archivo,true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter escritor = new PrintWriter(bw);
escritor.println(datos);
escritor.close ();
}
catch(Exception e)
{
System.out.println("\n\nError: " + e);
}
}
public static String Leer(){
String texto;
String txt = new String();
try{
FileReader fr = new FileReader(Archivo);
BufferedReader lector = new BufferedReader(fr);
texto = lector.readLine();
while(texto != null)
{
txt = txt.concat(texto);
texto = lector.readLine();
}
lector.close ();
}catch(Exception err){
System.out.println("Error: " + err);
}
return txt;
}
public static void main(String cvr[]){
Insertar arch = new Insertar("myarchivo.txt");
arch.Escribir("Hey que ondas??");
System.out.println(arch.Leer());
}
}
|
|
|
|
22/04/05, 08:42:17
|
#11 (permalink)
|
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
|
Tema: Socket's
Pregunta: Como hagouna conexion UDP ??
Respuesta: Una conexion UDP es para establecer una comunicacion, no es necesario establecer una conexion entre las dos maquinas para enviar el mensage, la maquina puede enviar el mensage y no se serciora de que halla llegado, solo lo envia a una IP especificada y si esa IP estaba escuchando el puerto, entonces llegara correctamente el mensage, sino el paquete se perdera, el siguiente ejemplo es un Chat en modo consola:
Código PHP:
/*
* Author: Crysfel Villa
* Created: Friday, April 22, 2005 9:40:46 AM
* Modified: Friday, April 22, 2005 9:40:46 AM
*/
import java.net.DatagramSocket;
import java.net.DatagramPacket;
import java.net.InetSocketAddress;
import java.net.InetAddress;
public class Chat extends Thread
{
static DatagramSocket ds=null;
static InetAddress ia=null;
static int puerto = 1020;
static String maxCadena = null;
static String usuario;
static void conectar()
{
try
{
InetSocketAddress isa=new InetSocketAddress("123.14.254.124",puerto);
ia = isa.getAddress();
ds = new DatagramSocket(puerto);
System.out.println("Socket conectado!");
}
catch(Exception e)
{
System.out.println("Error al conectar\n"+e);
}
}
static void enviar(String cadena)
{
byte enviar[];
int longitud = cadena.length();
enviar = cadena.getBytes();
try
{
DatagramPacket dp = new DatagramPacket(enviar,longitud,ia,puerto);
ds.send(dp);
System.out.println(cadena);
}
catch(Exception e)
{
System.out.println("Error al enviar mensaje\n"+e);
}
}
static void recibir()
{
byte nada[] = maxCadena.getBytes();
DatagramPacket dp = new DatagramPacket(nada,maxCadena.length());
try
{
while (true)
{
ds.receive(dp);
if (dp!=null)
{
nada = dp.getData();
for (int m=0; m<=nada.length-1; m++)
System.out.print((char)nada[m]);
System.out.println();
break;
}
}
}
catch(Exception e)
{
System.out.println("Error al recibir mensaje\n"+e);
}
}
static void cerrar()
{
ds.close();
System.out.println("Socket cerrado!");
}
public static void main(String a[])
{
maxCadena = new String(" "+
" ");
String msg = "";
conectar();
usuario = a[0];
enviar(usuario + " Esta On-Line");
do{
recibir();
System.out.print("-> ");
msg = MeterDatos.readLine();
if(msg.equals("exit"))
break;
else
enviar(usuario + " Said: " + msg);
}while(true);
cerrar();
}
}
|
|
|
|
22/04/05, 09:13:14
|
#12 (permalink)
|
Registrado: jun 2004
Ubicación: Monterrey NL
Mensajes: 1.971
|
Tema: Socket's
Pregunta: como hago una conexion TCP ??
Respuesta: Una conexion TCP necesita establecer primeramente la conexion entre el cliente y el servidor, donde el servidor estara corriendo y escuchando a un determinado puerto al que el cliente se conectara, cuando la conexion se establece correctamente entonces el cliente manda un mensage y el servidor le responde deacuerdo a lo que halla recibido, Este es un ejemplo muy simple de una coneccion TCP:
El Servidor:
Código PHP:
/*
* Author: Cryfel Villa
* Created: sábado, 17 de julio de 2004 6:26:35
* Modified: sábado, 17 de julio de 2004 6:26:35
*/
import java.net.ServerSocket;
import java.net.Socket;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.BufferedOutputStream;
public class Servidor extends Thread
{
ServerSocket server;
public Servidor()
{
//MANDAMOS LLAMAR AL CONSTRUCTOR DE LA CLASE "Thread" QUIEN ES LA
//SUPERCLASE DE ESTA CLASE, ASI NOSOTROS CREAMOS LOS HILOS Y DEMAS COSAS
//LE MANDAMOS UN IDENTIFICADOR EN ESTE CASO "Servidor" PUEDE SER CUALQUIER COSA
super("Servidor");
try
{
//CREAMOS EL SOCKET DEL SERVIDOR
server=new ServerSocket(2002);
System.out.println("Servidor corriendo...");
}
catch(Exception e)
{
System.out.println("Error al correr el servidor\n"+e);
System.exit(1);
}
}
public void run()
{
Socket client=null;
while (true)
{
if (server==null)
return;
try
{
//ESPERA A QUE LLEGUE ALGO
client=server.accept();
System.out.println("Llegó un cliente!");
}
catch(Exception e)
{
System.out.println("No se pudo conectar con el cliente\n"+e);
System.exit(1);
}
try
{
InputStreamReader isr=new InputStreamReader(client.getInputStream());
BufferedReader is=new BufferedReader(isr);
PrintWriter os=new PrintWriter(new BufferedOutputStream(client.getOutputStream()),true);
String inStr | |