viernes, 10 de mayo de 2013

Entrada y salida de datos Java


Entrada y Salida  Java

Una de las operaciones mas habituales que tiene que realizar un programa java es intercambiar datos con el exterior. Para ello, el paquete java.io de J2SE incluye una serie de clases que permiten gestionar la entrada y salida de datos en un programa.

Principales clases para realizar entrada y salida de datos

Salida de datos.

El envió de datos al exterior se gestiona a través de la clase PrintStream, utilizándose un objeto de la misma para acceder al dispositivo de salida. Posteriormente, con los métodos de la clase, podemos envíar información al exterior.

Proceso de envió de datos a la salida:

  1. Obtención del objeto PrintStream. Se debe crear un objeto PrintStream asociado al dispositivo de salida. La clase System proporciona el atributo estático out que contiene una referencia al objeto PrintStream.
  2. Envió de datos al stream. La clase PrintStream  dispone de los métodos print(String cadena) y println(String cadena) para enviar una cadena al dispositivo de salida.




Entrada de datos.

La lectura de datos del exterior se gestiona a través de la clase InputStream. Un objeto InputStream esta asociado a un dispositivo de entrada estándar ( el teclado) podemos acceder al mismo a través del atributo estático in de la clase System.

Sin embargo, el método read () proporcionado por InputStream para la lectura de los datos no nos ofrece la misma potencia que print o println para la escritura. La llamada read () revuelve el ultimo carácter introducido a través de dispositivo, esto significa que par leer una cadena completa seria necesario hacerlo carácter a carácter lo que haría ineficiente el código.

Por ello, para realizar la lectura de cadena de caracteres desde el exterior e muy preferible utilizar clases del paquete java.io: la clase BufferedReader.

Pasos para la lectura de datos mediante BufferedReader:
  • Crear objeto InputStreamReader. Este objeto permite convertir los bytes recuperados del stream de entrada en caracteres. Para crear un objeto de esta clase, es necesario indicar el objeto InputStream de entrada, como la entrada de este objeto es el teclado, este objeto lo tenemos referenciado en el atributo estático "in" de la clase System:
  • Creación del objeto BufferedReader. A partir del objeto anterior se puede construir un objeto BufferedReader para la lectura de cadenas:
  • Invocar al método readLine (). El método readLine() de BufferedReader  devuelve todos los caracteres introducidos hasta el salto de linea.
La llamada al método readLine () puede lanzar la excepción IOException de la cual hablaremos mas adelante. Cuando se utiliza este método para leer datos numéricos hay que tener en cuenta que el método devuelve los caracteres introducidos como tipo String, por lo tanto hay que recurrir a las clases de envoltorio (los métodos estáticos parseXXX(String)) para convertir el dato a numero y poder operar con el.

Practica 1:
Elaborar un programa para calcular el promedio de 3 calificaciones ingresadas por el usuario utilizando la clase BufferedReader.



Scanners

La clase  Scanner proporciona una serie de métodos parra realizar la lectura de datos desde un dispositivo de entrada o fichero, tanto en forma de cadena de caracteres como en cualquier tipo básico.

Creación de un objeto Scanner:


La cadena de caracteres introducida por teclado hasta la pulsación de la tecla "enter" esta dividida por el objeto Scanner en un conjunto de bloques de caracteres de longitud variable, denominados tokens. de forma predeterminada el caracter utlilizado como separador de token es el espacio blanco.

División de caracteres en tokens

Utilizando los métodos de esta clase es posible recuperar secuencialmente cada uno de estos tokens, e incluso convertirlos implícitamente a un determinado tipo de datos.

Principales métodos de la clase Scanner:


Tipo de dato devuelto
Método
Descripción
String
next()
Devuelve el siguiente token.
boolea
hasNext()
Indica si existe o no un nuevo token para leer.
xxx
nextXxx()
Devuelve el siguiente token como un tipo básico  siendo Xxx el nombre de este tipo básico. Por ejemplo, nextInt() para lectura de un entero o nextFloat() para la lectura de un float.
boolean
hasNextXxx()
Indica si existe o no un siguiete token del tipo especificado, siendo Xxx el nombre del tipo.
void
useDelimiter(String d)
Establece un nuevo delimitador de token.



Practica 1:
Realizar un programa que solicite al usuario su nombre y su numero personal y lo muestre en pantalla (haciendo uso de la clase Scanner).


Ejercicio :
Realizar un programa que pregunte su nombre, edad y domicilio y los muestre en pantalla.

Cualquier duda mencionarla en comentarios, gracias por su visita.

lunes, 6 de mayo de 2013

Tratamiento de Fechas

Tratamiento de fechas Java



  • Clase Date.

Un objeto Date representa una fecha y hora concretas con precisión de un milisegundo. Esta clase permite manipular una fecha y obtener información de la misma de una manera muy sencilla, sin embargo, ofrece un nulo soporte para la internalización de las aplicaciones por lo que a partir de la versión JSK 1.1 se incorporó una nueva clase llamada Calendar que amplía las posibilidades a la hora de trabajar con fechas. No obstante mencionare el funcionamiento básico:

Creación del objeto Date:

A través del método toString () obtendríamos la representación en forma de cadena de la fecha y hora actuales. Por ejemplo:



Internamente, el objeto Date guarda la información de la fecha y hora como un numero de tipo long que representa la cantidad de milisegundos transcurridos desde el día 1 de enero. Número que puede ser obtenido a través de método getTime ().



  • Clase Calendar.
Surgió para cubrir las necesidades de la clase Date en el tratamiento de fechas, es mas completa y contiene mejores herramientas para el tratamiento de las mismas.

- Creación del objeto Calendar.

Calendar es una clase abstracta por lo que no podemos utilizar el operador new para crear objetos de la misma. A través del método getInstance () creamos un objeto de una subclase Calendar (gracias al polimorfismo) que representa la fecha y hora actuales:

Utilizando el método get () podemos recuperar de manera individual cada uno de los campos de la fecha. Por ejemplo, mediante el siguiente programa se mostraría en pantalla la fecha actual utilizando el formato mm/dd/aa:


Observen que le sume un 1 al numero devuelto por el mes, es porque esta comprendido entre 0 y 11

Métodos principales de la clase Calendar:



Tipo de dato devuelto
Método
Descripción
void
set (int año, int mes, int dia)
Modifica la fecha del objeto calendar, asignándole el año, mes y día especificados en los parámetros  Este método está sobrecargado existiendo otra versión de la que es posible establecer nuevos valores tanto para fecha como hora. Recuerden los meses comienzan a enumerarse por 0.
void
setTime (Date d)
Establece la fecha y hora del objeto Calendar a partir de un objeto Date.
Date
getTime ()
Devuelve la fecha/hora como un objeto Date.
void
add (int campo, int cantidad)

Realiza una modificación relativa en uno de los campos de la fecha y hora, añadiendo o quitando una cantidad de tiempo al campo especificado en el primer parámetro. 
Ejemplo:
cal.add (Calendar.MINUTE, -10); //restamos 10 min a la hora.
void 
roll(int campo, int cantidad)

Su funcionamiento es igual que el anterior solo que este no afecta a los demás componentes.


Práctica 1:
Realizar un programa que calcule la edad de las personas a partir de su edad de nacimiento.


Ejercicio 1:
A partir del programa anterior que muestra la edad, mostrar cuantos meses y días faltan para cumplir nuevamente años.

Ejercicio 2:
Generar una nueva versión de la practica 1 haciendo uso de la clase Date. 

Cualquier duda mencionarla en comentarios, gracias por su visita.

sábado, 4 de mayo de 2013

Liberar o fleshear samsung Galaxy ace y toda la linea Samsung Galaxy.






Bien este es el metodo mas sensillo de liberacion : Requisitos: *Ser Usuario Root Instrucciones: *Van al Play Store y Buscan Galaxy Toolbox *Ejecutan la aplicacion: *Click a Network Unlock *Luego Click a Unlock my Galaxy *Reiniciar* Y LISTO : TELEFONO LIBERADO!!!!!!!!!!










unlock-galaxy

Hoy les traigo una pequeña maravilla. En una ocasión os hablamos de cómo liberar el Samsung Galaxy S y S2. Pues bien, hoy os presentamos una herramienta que sirve para un gran número de terminales: Galaxy Toolbox.

Galaxy Toolbox

Antes de nada, para no mezclar conceptos, esta aplicación libera el terminal, no lo rootea.

Liberar: Desbloquear la red móvil. Por ejemplo, si estamos con Movistar y queremos utilizar una tarjeta de Vodafone.

Root necesario: Por otro lado, para utilizar esta aplicación hace falta ser root. Podréis averiguar cómo en Ready2root y leer más sobre él en nuestra sección de Root.

Una vez tenemos claras estas dos cosas y tenemos nuestros terminales rooteados, podemos empezar a utilizar la aplicación. Básicamente la aplicación nos permite hacer cuatro cosas
  • Hacer una copia de seguridad de la partición bm15 (por si acaso)
  • Restaurar la partición bm15 (por si ha fallado algo)
  • Desbloquear: desbloquear la red, desbloquear la subred, desbloqueo del SP (Subsidy Lock), desbloqueo del CP.
  • Resetear el contador binario a cero
A nosotros tan solo nos interesa utilizar la primera y tercera opción.
Y ahora la lista de terminales compatibles:
Samsung Galaxy Y series
- GT-S5360
- GT-S5360B
- GT-S5360L
- GT-S5360T
- GT-S5363
- GT-S5369
Samsung Galaxy Pro
- GT-B5510
- GT-B5510B
- GT-B5510L
Samsung Galaxy Mini Plus
- GT-S5570I
Samsung Galaxy Ace (solo los nuevos modelos)
(NO FUNCIONA con el Ace GT-S5830 ni el Ace Plus o Ace 2 !!!)
- GT-S5830i
- GT-S5830C
- GT-S5830M
- GT-S5839i
Así que si queréis desbloquear de forma sencilla vuestro terminal Galaxy, ya sabés cómo.



este es el link de descarga en google play

Clase Math Java


Principales métodos de la clase Math Java

Esta clase proporciona métodos para la realización de las operaciones matemáticas mas habituales en un programa. Todos los métodos de la clase Math son estáticos  por lo que no necesitamos crear ninguna instancia dela clase para su utilización, de hecho, no es posible crear ningún objeto de la clase Math.

Constantes Publicas.
La clase Math dispone de dos atributos públicos estáticos que contienen dos de las constantes matemáticas mas utilizadas:
  • static double E. Contiene el valor doble más cercano al número e (2.7182...).
  • static double PI. Contiene el valor doble más cercano al número pi (3.1415...).

Tipo de dato devuelto
Método
Descripción
número
max(número n1, número n2)
Devuelve el mayor de dos números (int, long, float, double).
número
min(número n1, número n2)
Devuelve el menor de nos números (int, long, float, double).
double
floor(double n)
Devuelve el entero menor mas cercano al número indicado en el parámetro.
Ejemplo:
double d= Math.floor(4.3)  //almacena el valor 4.0

double
ceil(double n)

Devuelve el entero mayor mas cercano al número indicado en el parámetro.
Ejemplo:
double d= Math.ceil(4.3)  //almacena el valor 5.0

double
round(double n)

Devuelve el entero mas cercano al numero indicado en el parámetro.
Ejemplo:
double d= Math.round(4.3)  //almacena el valo 4.0

double
pow(double n1, double n2)
Devuelve el resultado de elevar n1 a n2.
double
random()
Devuelve un numero aleatorio mayor o igual a 0.0 y menor o igual a 1.0.
double
sqrt(int num)
Devuelve la raíz cuadrada de un número asignado en el parámetro.

Practica 1:
Elaborar un programa que de dos números ingresados  por el usuario invierta mencione cual es el mayor y cual el menor.
Solución:


Práctica 2:
Elaborar un programa que genere 10 números aleatorios entre el rango 0 a un número asignado por el usuario.

Solución:



Ejercicio:
Elaborar un programa el cual calcule el área de un circulo a partir del radio introducido por el usuario,utilizando la clase Math.
 Formula del área: pi*radio2

Cualquier duda mencionarla en comentarios, gracias por su visita.

Clase String Java


Principales métodos de la clase String Java

La clase String cuenta con un amplio conjunto de métodos para la manipulación de cadenas de texto, a continuación presentamos algunos de los métodos mas importantes de la misma.

Tipo de dato devuelto
Método
Descripción
Int
leng()
Devuelve el numero de caracteres de una cadena.
Boolean
equals()
Compara cadenas haciendo distinción de mayúsculas y minúsculas.
Boolean
equalsIgnoreCase()
Actúa igual que el anterior sin hacer distinción de mayúsculas y minúsculas.
Char
char(Int pos)
Devuelve el carácter que ocupa la posición dada.
String
substring(Int inicio,Int final)
Devuelve un trozo de cadena.
Int
indexOf(String cadena)
Devuelve la posición de una cadena indicada en el parámetro.
String
replace(Char old,Char new)
Devuelve la cadena resultante de sustituir todas las apariciones del primer carácter por uno nuevo.
static String
valueOf( Tipo basico dato)
Método estático que devuelve como cadena un dato de tipo básico mencionado en el parámetro.
String
toUpperCase()
Devuelve la cadena en mayúsculas
String
toLowerCase()
Devuelve la cadena en minúsculas
String []
split(String regex)
Devuelve el array String de descomponer una cadena de texto en subcadenas utilizando como separador el carácter indicado en el parámetro regex.

Practica 1:
Elaborar un programa que partiendo de una cadena dada por el usuario invierta sus caracteres y muestre la cadena resultante.

Solución:


Práctica 2:
Elaborar un programa que partiendo de una cadena dada por el usuario indique si dicha cadena es o no un palindromo.

Solución:



Ejercicio:
Elaborar un programa el cual pida una cadena al usuario y muestre cuantas vocales hay en ella.
Ejemplo:
"Badiproc Systems"
La cadena tiene: 
-1 a's.
-1 e's.
-1 i's.
-1 o's.
-0 u's.

Cualquier duda mencionarla en comentarios, gracias por su visita.