Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ejemplo de Array
Solicitar el número de notas que se van a grabar. Instanciar el array y solicitar
por consola los datos. Al final por medio de un bucle mostrar las notas.
Ejercicio Array 2
Crear un bloque de código que pinte las vocales y solo las vocales que existen
en un array de caracteres. El programa debe de ir comprobando, con un bucle,
para determinar si cada carácter del array es o no una vocal.
24/03/2020
x1. - Crear un bucle que pinte por consola todas las componentes de un array
en orden inverso a como están guardadas en el array
2.- Crear un bloque de código que recorra los siguientes arrays y me cree otro
que contenga las componentes de ambos dos. Los arrays son los siguientes:
int[] array1 = new int[]{1,2,3,4,5};
int[] array2 = new int[]{334,23,4};
public static void main(String[] args) {
/*
Crear un bloque de código que recorra los siguientes arrays y
se cree otro que contenga las componentes de ambos dos.
Los arrays son los siguientes:
int[] array1 = new int[]{1,2,3,4,5};
int[] array2 = new int[]{334,23,4};
*/
int[] array1 = {1, 2, 3, 4, 5};
int[] array2 = {334, 23, 4};
Ejercicio 3
Dado los siguientes arrays, hacer un bloque de código que construya un array
de la siguiente manera:
char[] cars1 = {'1','2','3','4','5','6'};
char[] cars2 = {'a','e','r','t','y','u'};
El array resultado que se debe de construir es el siguiente:
char[] result = new char[]{'1','a','2','e','3','r','4','t','5','y','6','u'};
}
Sintaxis del for each
public static void main(String[] args) {
// 1. Definir un array
int[] numeros = {1,4,7,4,8};
for (int elemento : numeros) {
System.out.println("Elemento -> " + elemento);
}
}
Ejercicio 4
Dado el siguiente array, crear un bloque de código que pinte, SOLO, las
consonantes que existan en dicho array
char[] letras ={'2','f','f','u','u','g','h','i','4'};
char[] letras = new char[]{'2', 'f', 'f', 'u', 'u', 'g', 'h', 'i', '4'};
char[] consonantes = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r',
's', 't', 'v', 'w', 'x', 'y', 'z'};
25/03/2021
Ejercicio 1
Dado el siguiente array crear un bloque de código que sume todas las
componentes del array, para ello hacer uso de un bucle que vaya obteniendo
todos los valores del array
float[] decimales = {3.4F,5.67F,12.0F,3.141615F,0.0F};
float[] decimales = new float[]{3.4F, 5.67F, 12.0F, 3.141615F, 0.0F};
float suma = 0;
Ejemplo de declaración de Matrices de dos dimensiones
Ejercicio 3
Dado los dos siguientes arrays, crear un bloque de código que me sume las
Componentes de ambos arrays de la siguiente manera:
Array1 Array2 Resultado Resultado
1 2 3 4 (1+3) (2+4) ---> 4 6
0 5 5 8 (0+5) (5+8) 5 13
Los arrays son los siguientes:
int[][] matriz1 = { {1,2}, {0,5} };
int[][] matriz2 = { {3,4}, {5,8} };
Ejercicio 4
}
System.out.println(resultado.substring(0, resultado.length() -1) + "}");
}
Ejemplo 5
Solicitar por pantalla, el nombre del alumno, numero de faltas (dos
digitos), nota con dos decimales, si a aprobado (true/false), con un cabecero
String[] lineas = new String[20];
String nombre, respuesta;
int faltas, renglon=0;
float nota;
boolean aprobado;
Scanner s1 = new Scanner(System.in);
while (true) {
System.out.println("Escriba el nombre del alumno --> ");
nombre = s1.next();
System.out.println("Escriba las faltas del alumno --> ");
faltas = s1.nextInt();
System.out.println("Escriba la nota del alumno --> ");
nota = s1.nextFloat();
System.out.println("¿Ha aprobado?");
aprobado = s1.nextBoolean();
lineas[renglon] = String.format("%-20s \t %2d \t %.2f \t %b
\n",nombre, faltas, nota, aprobado);
renglon++;
System.out.println("Desea continuar s/n ");
respuesta = s1.next();
if (respuesta.equalsIgnoreCase("n")) {
break;
}
}
System.out.printf("%-20s \t %s \t %s \t %s \n\n", "Nombre", "faltas",
"Notas", "Aprobado");
for (int i = 0; i < renglon; i++) {
System.out.println(lineas[i]);
}
26/03/2021
//1. Atributos
public String nombre;
public double sueldo;
public LocalDate fNacimiento;
//2. Métodos
public double calcularNomina(){
return sueldo * 0.92;
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Saludo objSaludo = new Saludo();
System.out.println(objSaludo.saludar());
}
}
06/04/2021
EJERCICIO 3
Crear la clase Areas con métodos para calcular el área de un circulo y el área
de un
rectángulo. Desde una clase principal realizar ambos cálculos y mostrarlos por
pantalla.
EJERCICIO 4
Realizar una clase llamada Campos con dos métodos uno muestra y el otro
incrementa. El método muestra, es una función que da como resultado el valor
de x, El
método incrementa: incrementa el valor de X.,en el constructor se da Campel
valor
inicial al campo X.,Crear una instancia en el módulo principal de la aplicación,
incrementar y mostrar el resultado.
//Atributos
public int x;
//Métodos
}
System.out.println(c1.muestra());
c1.incrementa();
System.out.println(c1.muestra());
//Instanciar otro objeto de la clase Campos
System.out.println("Objeto 2");
Campos c2 = new Campos(7);
System.out.println(c2.muestra());
c2.incrementa();
System.out.println(c2.muestra());
}
}
EJERCICIO 5
Construir una aplicación que imprima por pantalla las tablas de multiplicar. Debe
contar con un constructor que indica la tabla que se va a mostrar. Debe contar con un
método que dé como resultado un string para mostrar diez línea de la tabla del
número dado en el constructor
EJERCICIO 6
Construir una aplicación que muestre por pantalla el nombre de alumno y su nota final.
Para ello construir una clase Alumno que contenga:
Un campo que sea una matriz para almacenar las calificaciones de los parciales.
El constructor deberá inicializar las variables de NombreCompleto y dimensionar
el array de Parciales.
Un método de escritura para asignar los valores de los parciales.
Un método para calcular el promedio de los parciales.
Un método para mostrar las calificaciones de los parciales.
07/07/2021
Encapsulación
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Instanciar la fecha
FechaEncapsulada fe1 = new FechaEncapsulada();
fe1.setAnio(2021);
fe1.setMes(4);
fe1.setDia(7);
System.out.println("Fecha -> " + fe1.getAnio() + "/" + fe1.getMes() + "/" +
fe1.getDia());
}
}
Clase Animal
public String mostrarInfo() {
return "Animal{" + "peso=" + peso + ", especie=" + especie + ", nombre=" +
nombre + '}';
}
}
EJERCICIO 7
Los métodos serán: Seis para dibujar por pantalla la imagen de los números. Otro para
lanzar(), que generará un número aleatorio entre 1 y 6, invocará al método dibujar
que le corresponda. En el constructor instanciar un objeto Random.
/*
Los métodos serán: Seis para dibujar por pantalla la imagen de los números. Otro para
lanzar(),
que generará un número aleatorio entre 1 y 6,
invocará al método dibujar que le corresponda.
En el constructor instanciar un objeto Random.
*/
//Atributos
private Random aleatorio;
//Métodos
//Constructores
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Dado d1 = new Dado();
Scanner s1 = new Scanner(System.in);
String respuesta;
do {
System.out.println(d1.lanzar());
System.out.println("¿Quieres continuar ?");
respuesta = s1.next();
} while (!respuesta.equalsIgnoreCase("n"));
}
}
EJEMPLO DE SOBRECARGA
@Override
public String toString() {
return "Circulo{" + "radio=" + radio + '}';
}
//Constructores
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Instanciar un objeto de la Clase Circulo, el nombre de objeto miCirculo
Circulo miCirculo = new Circulo();
miCirculo.setRadio(1);
System.out.println("Area del circulo es --> " + miCirculo.area());
System.out.println("Usando el RGB " + miCirculo.colorear(0, 0, 254));
System.out.println("Usando el HSB " + miCirculo.colorear(5.5f, 6.6f, 7.7f));
}
}
HERENCIA
public class Empleado {
//1. Atributos
private String nombre;
private double sueldo;
private LocalDate fNacimiento;
@Override
public String toString() {
return "Empleado{" + "nombre=" + nombre + ", sueldo=" + sueldo + ",
fNacimiento=" + fNacimiento + '}';
}
@Override
public String toString() {
return "Gerente{" + "numSubordinados=" + numSubordinados + '}' +
super.toString();
}
public Gerente() {
}
public Gerente(String nombre, double sueldo, LocalDate fNacimiento) {
super(nombre, sueldo, fNacimiento);
}
}
EJERCICIO 1
Crear la clase Figura encapsulada con las siguientes propiedades: coordenadaX y
coordenadaY (ambas de tipo entero) y un método posición() que devuelva la
posición de la figura.
Crear las clases encapsuladas Círculo y Rectángulo heredando de la clase figura.
La clase Círculo además tendrá la propiedad radio de tipo double y la clase
Rectángulo tendrá el ancho y el alto del rectángulo también de tipo double.
Sobrescribir el método posición() para cada una de las clases y utilizar el
operador super para llamar al método sobrescrito.
Crear la clase TestFiguras donde se crearán objetos de las tres clases, se darán
valores y mostraremos la posición de cada figura.
12/04/2021
}
public Bateria() {
}
@Override
public String emitirSonido() {
return "flu flu ..."; //To change body of generated methods, choose Tools
| Templates.
}
@Override
public String toString() {
return "Flauta{" + "material=" + material + '}' + super.toString();
}
@Override
public String emitirSonido() {
return "dl dl ..."; //To change body of generated methods, choose Tools |
Templates.
}
@Override
public String toString() {
return "Guitarra{" + "tiposCuerda=" + tiposCuerda + '}' +
super.toString();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Instanciar las 4 clases
InstrumentoMusical im1 = new InstrumentoMusical("Yamaha");
Bateria b1 = new Bateria(6, "Yamaha");
Flauta f1 = new Flauta("madera", "no tiene");
Guitarra g1 = new Guitarra("nylon", "Yamaha");
System.out.println("Información de cada objeto");
System.out.println(im1.toString());
System.out.println(b1.toString());
System.out.println(f1.toString());
System.out.println(g1.toString());
System.out.println("Emitir sonido");
System.out.println(im1.emitirSonido());
System.out.println(b1.emitirSonido());
System.out.println(f1.emitirSonido());
System.out.println(g1.emitirSonido());
InstrumentoMusical[] instrumentos = new InstrumentoMusical[4];
instrumentos[0] = im1;
instrumentos[1] = b1;
instrumentos[2] = f1;
instrumentos[3] = g1;
System.out.println("---- Emitir sonido por bucle ----");
for (InstrumentoMusical elemento : instrumentos) {
System.out.println(elemento.emitirSonido());
}
}
}
EJERCICIO 1
Crear la clase abstracta Planta con un método abstracto:
void regar(int cantidad, int tiempo)
además crearemos todas propiedades y métodos que se os ocurran
Creamos las clases PlantaTropical, Cactus donde implementaremos el método abstracto.
Desde una clase principal crear objetos utilizando polimorfismo.
}
public class PlantaTropical extends Planta {
@Override
public String regar(int cantidad, int tiempo) {
}
}
@Override
public String regar(int cantidad, int tiempo) {
return "Regando un cactus"
+ "La planta " + getNombre()
+ " se debe regar cada " + tiempo + " dias con " + cantidad + " litros de agua";
}
13/04/2021
Ejercicio de la pagina 65 del libro de teoría
Ejemplo de interfaces
Clase Vehículo
@Override
public String despegar() {
return "El avión está despegando ...";
}
@Override
public String aterrizar() {
return "El avión está aterrizando ...";
}
@Override
public String volar() {
return "El avión está volando ...";
}
@Override
public String toString() {
return "Avion{" + "numPasajeros=" + numPasajeros + '}';
}
@Override
public String aterrizar() {
return "El ave está aterrizando ...";
}
@Override
public String volar() {
return "El ave está volando ...";
}
public String hacerNido(){
return "El ave está haciendo el nido ...";
}
public String ponerHuevos(){
return "El ave está poniendo huevos ...";
}
@Override
public String comer() {
return "El ave está comiendo...";
}
}
@Override
public String comer() {
return "Kriptoniano comiendo ..."; //To change body of generated methods, choose
Tools | Templates.
}
}
@Override
public String despegar() {
return "Superman está despegando ...";
}
@Override
public String aterrizar() {
return "Superman está aterrizando ...";
}
@Override
public String volar() {
return "Superman está volando ...";
}
public String saltarEdificio(){
return "Superman está saltando edificios para salvar a la gente atrapada ...";
}
public String detenerBala(){
return "Superman está deteniendo una bala";
}
@Override
public String comer() {
return "Superman está comiendo su kriptonita"; //To change body of generated
methods, choose Tools | Templates.
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Instanciar las clases que implementan el Objeto Volador
// Almacenar en un array de Objetos Voladores
ObjetoVolador[] voladores = new ObjetoVolador[5];
voladores[0] = new Avion(500, "BBXX");
voladores[1] = new Ave();
voladores[2] = new Superman();
voladores[3] = new Avion(350, "XXBB");
voladores[4] = new Ave();
for (ObjetoVolador elemento : voladores) {
System.out.println(elemento.getClass().getName());
System.out.println(elemento.despegar());
System.out.println(elemento.volar());
System.out.println(elemento.aterrizar());
}
}
}
EJERCICIO 2
Crear la clase abstracta Animal con los métodos abstractos comer() y moverse(). A
continuación crearemos varias clases Perro, Pez, Pajaro, Gusano, …etc.
¿Qué ocurre si no implemento todos los métodos?
¿Puedo crear instancias igualmente?
¿Puedo modificar parte de la definición de los métodos abstractos?
¿Puedo utilizar polimorfismo?
Crea clases extendiendo la clase Pajaro, por ejemplo Gorrión y Buitre.
¿También son abstractas estas clases?
EJERCICIO 2
Vamos a ampliar el ejercicio anterior creando otra interfaz ArticuloPeredecero
con el método: caducar()
Podemos crear otras clases Pan, Leche, …etc.
Tiene sentido crear dichas clases implementando ambas
interfaces(ArticuloVenta y ArticuloPeredecero)
Contesta a las siguientes preguntas:
Estamos obligados a implementar todos los métodos?
Qué ocurre si no los implementamos?
Puedo cambiar el modificador de acceso a los métodos?
15/04/2021
EJERCICIO 1
Crear la clase globo con una variable estática entera para asignar la referencia
del globo.
En una clase principal PruebaGlobo se crearán distintos objetos y desde cada
uno de ellos se mostrará la referencia del globo.
EJERCICIO 2
Crear una clase Calculadora con métodos estáticos: suma, resta, multiplica y
divide. Desde una clase principal PruebasCalculadora invocar a los cuatro
métodos.
Ejercicio 2
Se quiere construir un programa para manejar una alcancía. En la alcancía es
posible guardar monedas de distintas
denominaciones: $50, $100, $200, $500 y $1000. No se guardan billetes o
monedas de otros valores.
El programa debe dar las siguientes opciones:
1. Agregar una moneda de una de las denominaciones que maneja,
2. Informar cuántas monedas tiene de cada denominación
3. Calcular el total de dinero ahorrado
4. Romper la alcancía, vaciando su contenido.
16/04/2021
public class Persona {
//1. Atributos
private final int id;
private String nombre;
private String apellidos;
private static int contador = 0;
//2. Métodos
@Override
public String toString() {
return "Persona{" + "id=" + id + ", nombre=" + nombre + ", apellidos=" +
apellidos + '}';
}
}
@Override
public String toString() {
return "NaipeBaraja{" + "palo=" + palo.getName() + ", rango=" + rango + '}';
}
public NaipeBaraja(Palo palo, int rango) {
this.palo = palo;
this.rango = rango;
}
//Setters y Getters
//
}
@Override
public String toString() {
return "Alcancia{" + "monedas=" + Arrays.toString(monedas) + '}';
}
public int calcularTotal(){
int total = 0;
for (Moneda e : monedas) {
total+=e.getCantidad()*e.getValor().getValor();
}
return total;
}
public String romperAlcancia(){
String resultado = "Usted tiene ahorrado " + calcularTotal();
for (Moneda e : monedas) {
e.setCantidad(0);
}
return resultado;
}
public Alcancia() {
int indice = 0;
monedas = new Moneda[Valor.values().length];//Numero de celdas de monedas
for (Valor elemento : Valor.values()) {
monedas[indice++] = new Moneda(elemento, 0);
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//Instanciar alcancía
Alcancia a1 = new Alcancia();
System.out.println(a1.agregarMoneda(Valor.CIEN));
System.out.println(a1.agregarMoneda(Valor.CINCUENTA));
System.out.println(a1.agregarMoneda(Valor.DOSCIENTOS));
System.out.println(a1.agregarMoneda(Valor.MIL));
System.out.println(a1.agregarMoneda(Valor.MIL));
System.out.println("Total ->" + a1.calcularTotal());
System.out.println(a1.toString());
System.out.println(a1.romperAlcancia());
System.out.println(a1.toString());
}
}
Ejercicio 3.
Realizar un proyecto en java para cumplir con los siguientes requerimientos:
Del empleado se maneja la siguiente información:
• Nombre
• Apellido
• Género (femenino o masculino).
• Fecha de nacimiento. De tipo LocalDate
• Fecha de ingreso a la empresa. De tipo LocalDate
• Salario básico.
El proyecto permite visualizar la información del empleado, y hacer los siguientes
cálculos:
• Edad del empleado, utilizando la fecha de nacimiento del empleado.
• Antigüedad del empleado, utilizando la fecha de ingreso del empleado.
• Prestaciones a las que tiene derecho el empleado. Para este cálculo se debe usar la
siguiente fórmula:
prestaciones= (antiguedad*salario)/12
19/04/2021
20/04/2021
Ejercicio 6
21/04/2021
Ejercicio 4.
Se quiere crear un proyecto que permita simular el comportamiento de las
cuentas bancarias de un cliente. Un cliente puede
tener tres productos financieros básicos:
1. Una cuenta corriente. El cliente puede depositar o retirar dinero, pero no
recibe ningún interés por el dinero que se
encuentre allí depositado.
2. Una cuenta de ahorros. El cliente puede depositar o retirar dinero, y recibe
un interés mensual del 0.6% sobre el
saldo actual.
3. Un certificado de depósito a término CDT. Cuando el cliente abre un CDT,
define la cantidad de dinero que quiere
invertir y negocia con el banco el interés mensual que va a recibir. A diferencia
de la cuenta corriente o la cuenta de
ahorros, en un CDT no se puede consignar ni retirar dinero. La única operación
posible es cerrarlo, en cuyo caso, el
dinero y sus intereses pasan a la cuenta corriente.
Estos productos son independientes y tienen comportamientos particulares. El
saldo total de la cuenta es la suma de lo que el
cliente tiene en cada uno de dichos productos.
El programa debe permitir al usuario:
1. Visualizar el saldo de la cuenta corriente del cliente.
2. Visualizar el saldo de la cuenta de ahorros del cliente.
3. Visualizar el saldo del CDT del cliente.
4. Visualizar el saldo total que tiene el cliente en los productos del banco.
5. Invertir un monto de dinero en un CDT.
6. Cerrar la inversión en CDT.
7. Ingresar un monto de dinero en la cuenta corriente del cliente.
8. Retirar un monto de dinero en la cuenta corriente del cliente.
9. Ingresar un monto de dinero en la cuenta de ahorros del cliente.
10. Retirar un monto de dinero en la cuenta de ahorros del cliente.
29/04/2021
public class PrecioInvalidoExepcion extends Exception{
@Override
public String toString() {
return "Producto{" + "idProducto=" + idProducto + ", nombreProducto=" +
nombreProducto + ", precio=" + precio + '}';
}
//Constructores
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Instanciar la clase Producto
Producto p1 = new Producto();
try {
p1.setPrecio(100);
} catch (PrecioInvalidoExepcion pepito) {
System.out.println(pepito.toString());
}
System.out.println("Información del objeto -> " + p1.toString());
}
}
public class BicicletaException extends Exception{
Ejercicio 1
Solicitar por consola un texto, del cual se pide que se muestren las diferentes
palabras.
Ejercicio 1
Solicitar por consola un texto, del cual se pide que se muestren las diferentes palabras.
// 1. Declaración de variables
Scanner s1 = new Scanner(System.in);
String[] palabras;
String[] puntuacion = {",",".",";",":"};
Set<String> diferentes= new HashSet();
String texto;
//Solicitar la frase
System.out.println("Escriba un texto para analizar -> ");
texto = s1.nextLine();
//Limpia la frase
for (String elemento : puntuacion) {
texto = texto.replace(elemento, " ");
}
// System.out.println("texto limpio -> " + texto);
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Menú principal
ArrayList<Double> alturas = new ArrayList();
String opcion;
Scanner s1 = new Scanner(System.in);
do {
System.out.println("Elegir la opción \n");
System.out.println("1. Nueva altura");
System.out.println("2. Altura media");
System.out.println("3. Altura máxima");
System.out.println("4. Altura mínima");
System.out.println("5. Mostrar todas las alturas");
System.out.println("6. Salir");
opcion = s1.next();
}
}
}
}
06/05/2021
Ejemplo de implementacion del Comparable y Comparator
@Override
public String toString() {
return "Estudiante{" + "idEstudiante=" + idEstudiante + ", nombre=" + nombre +
", nota=" + nota + '}'+"\n";
}
@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getNombre().compareTo(o2.getNombre());
}
}
@Override
public int compare(Estudiante o1, Estudiante o2) {
return o1.getNota().compareTo(o2.getNota());
}
}
EJERCICIO 1
Crear una clase hilo llamada Contador con una propiedad incremento que
será inicializada con un valor pasado al constructor.
Crear una clase llamada Ratones que herede de la clase Thread con dos
métodos sincronizados comer y llenar.
El programa consiste en crear dos hilos de este clase y que coman mientras
haya comida en el plato. Cuando el plato esté vacío se deberá llenar de nuevo.
Recurso
Productor
Consumidor
Main
public static void main(String[] args) {
// Leer de la consola y escribir en un fichero plano (texto)
Scanner s1 = new Scanner(System.in, "ISO-8859-1");
PrintWriter fSalida;
try {
//Instanciar el FileWriter
fSalida = new PrintWriter("bitacora.txt");
while (true) {
System.out.println("Escriba una línea para ser grabada en el archivo
bitacora");
String linea = s1.nextLine();
fSalida.write(linea+"\n");
System.out.println("Desea escribir otra linea S/N");
String respuesta = s1.nextLine();
if (respuesta.equalsIgnoreCase("n")) {
break;
}
}
// fSalida.flush();
fSalida.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
Lectura de fichero
public static void main(String[] args) {
// Leer el fichero bitacora.txt con la clase FileReader y BufferedReader
// tiene métodos de read y readline
//Definir variables
FileReader fEntrada;
BufferedReader buffer;
String linea;
try {
//Instanciar las clases de FileReader y BufferedReader
fEntrada = new FileReader("bitacora.txt");
buffer = new BufferedReader(fEntrada);
while ((linea=buffer.readLine())!=null) {
//Entra si no es nulo
System.out.println(linea);
}
fEntrada.close();
} catch (FileNotFoundException ex) {
System.out.println(ex.toString());
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
USO DE ARGUMENTOS DE ENTREADA DE PROYECTO
public static void main(String[] args) {
// Recorrer los argumentos que entran al proyecto
for (String elemento : args) {
System.out.println("Argumentos del proyecto -> " + elemento);
}
}
USO DE PROPIEDADES
public static void main(String[] args) {
Properties props = System.getProperties();
props.list(System.out);
}
UTILIZANDO COMO BUFFER UN ARRAY DE CHAR
EJERCICIO 1
Crear un programa que muestre la lista de ficheros y directorios del directorio:
C:\windows
17/05/2021
Ejercicio
Leer el fichero para calcular el promedio de los precios que se han almacenado
en el fichero
Clase Cliente
package com.vipper.modelo;
import java.io.Serializable;
// SETT´S
@Override
public String toString() {
return "\tNIF:" + NIF+ "\t nombre:" + nombre +"\t Imp. Credito:"+
credito;
}
}
Clase GrabarCliente
package com.vipper.presentacion;
import com.vipper.modelo.Cliente;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
do{
cliente= new Cliente();
System.out.print("NIF Cliente: ");
cliente.setNIF(sc.next());
System.out.print("Nombre cliente: ");
cliente.setNombre(sc.next());
System.out.print("Importe Credito: ");
cliente.setCredito(sc.nextDouble());
objeto.writeObject(cliente);
System.out.print("Desea Salir [S/N]? ");
salir=sc.next().toUpperCase();
}while(salir.equals("N"));
fSalida.close();
} catch (FileNotFoundException ex) {
Logger.getLogger(Main04_GrabarClientes.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IOException ex) {
Logger.getLogger(Main04_GrabarClientes.class.getName()).log(Level.SEVERE,
null, ex);
}
}
Clase LeerCliente
package com.vipper.presentacion;
import com.vipper.modelo.Cliente;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
public class Main04_LeerClientes {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// 1. Declaración de variables
Double altura;
Scanner s1 = new Scanner(System.in);
FileWriter fs;
try {
fs = new FileWriter("alturas.txt", true);
while(true){
System.out.println("Escriba la altura -> ");
altura = s1.nextDouble();
if (altura == -1) {
break;
}
fs.write(altura.toString() + "|");
}
fs.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
LEER ALTURAS
CLIENTE
try {
//2. Instanciar el socket
s1 = new Socket("localhost", 3000);
//3. Leer la contestacion del servidor
bf = new BufferedReader(new
InputStreamReader(s1.getInputStream()));
System.out.println(bf.readLine());
bf.close();
s1.close();
}
}
PROCESA CONEXION
public class ProcesaConexion extends Thread{
//atributos
Socket sc;
int peticion;
//constructor
SERVERSIMULACION
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// Declarar variables
int puerto = 3000;
int peticion = 0;
try {
//Instanciar el ServerSocket (función de un demonio)
ServerSocket servidor = new ServerSocket(puerto);
//Bucle infinito para que esté escuchado peticiones
while (true) {
System.out.println("Esperando peticion ....");
//Cuando recibe una petición desde un cliente, crea un hilo para atenderlo,
//pasándole el socket que representa la conexion
Socket con = servidor.accept();
//(new ProcesaConexion(con, peticion)).start();
ProcesaConexion pc1 = new ProcesaConexion(con, peticion);
pc1.start();
peticion++;
}
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
CLIENTE SIMULACION
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
int puerto = 3000;
String mensaje = null;
try {
//El cliente le tiene que enviar un socket al servidor
//Es por eso que instanciamos este socket
Socket conexion = new Socket("localhost", puerto);
//Escribir la respuesta en el socket
PrintWriter out = new PrintWriter(conexion.getOutputStream(), true);
//Solicitar por consola el nombre del usuario
InputStreamReader lecturaConsola = new InputStreamReader(System.in);
BufferedReader lecturaTeclado = new BufferedReader(lecturaConsola);
System.out.print("Escriba su nombre -->");
String nombre = lecturaTeclado.readLine();
out.println(nombre);
out.flush(); //Esto es lo que le llega al servidor
}
conexion.close();
}
}
20/05/201
CLIENTE
public class Cliente {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
try {
// TODO code application logic here
Random r1 = new Random();
Socket s1 = new Socket("localhost", 3000);
PrintWriter peticion = new PrintWriter(s1.getOutputStream(),true);
peticion.println("Esta es la peticion ..." + r1.nextInt(101));
peticion.flush();
//Leer la respuesta que viene del servidor
InputStreamReader respuesta = new InputStreamReader(s1.getInputStream());
BufferedReader bRespuesta = new BufferedReader(respuesta);
System.out.println("Respuesta del servidor --> " + bRespuesta.readLine());
s1.close();
peticion.close();
respuesta.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
SERVIDOR
Ejercicio
@Override
public String toString() {
return String.format("%-15s %d %-15s %.4f %n" , LocalDate.now().toString(),
idTienda, nombreTienda, ventas);
}
public Tienda(int idTienda, String nombreTienda, double ventas) {
this.idTienda = idTienda;
this.nombreTienda = nombreTienda;
this.ventas = ventas;
}
CLIENTETIENDA
SERVIDORTIENDA
}
25/05/2021
VERSION DE LA PROFESORA
public String formatoCSV() {
return String.format("%s,%s,%s,%s,%s,%s,%s",
fecha,incrementoMuertos, muertos , muertosMillon, incrementoConfirmados ,
confirmados , cofirmadosCienMil) ;
}
@Override
public String toString() {
return "EstadisticaCovid{" + "fecha=" + fecha + ", incrementoMuertos="
+ incrementoMuertos + ", muertos=" + muertos + ", muertosMillon=" +
muertosMillon + ", incrementoConfirmados=" + incrementoConfirmados + ",
confirmados=" + confirmados + ", cofirmadosCienMil=" + cofirmadosCienMil +
'}';
}
public EstadisticaCovid crearAtributo(EstadisticaCovid ec1, int i, String
elemento) {
System.out.println("Entra a crear atributo -->" + elemento + "i-> " + i);
switch (i) {
case 0:
ec1.setFecha(LocalDate.parse(elemento));
break;
case 1:
ec1.setIncrementoMuertos(Integer.parseInt(elemento));
break;
case 2:
ec1.setMuertos(Integer.parseInt(elemento));
break;
case 3:
ec1.setMuertosMillon(Double.parseDouble(elemento));
break;
case 4:
ec1.setIncrementoConfirmados(Integer.parseInt(elemento));
break;
case 5:
ec1.setConfirmados(Integer.parseInt(elemento));
break;
case 6:
ec1.setCofirmadosCienMil(Double.parseDouble(elemento));
break;
}
return ec1;
}
//Constructores
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws FileNotFoundException {
try {
u1 = new
URL("https://datosmacro.expansion.com/otros/coronavirus/espana");
//2. Obtener el stream
b1 = new BufferedReader(new InputStreamReader(u1.openStream()));
//3. Leer el stream obtenido
while ((cad = b1.readLine()) != null) {
datos.append(cad);
}
procesaDatos(datos.toString());
} catch (MalformedURLException ex) {
Logger.getLogger(ObtenerTexto.class.getName()).log(Level.SEVERE,
null, ex);
} catch (IOException ex) {
Logger.getLogger(ObtenerTexto.class.getName()).log(Level.SEVERE,
null, ex);
}
}
}
}
FIN DE LA VERSION DE LA PROFESORA
@Override
public String toString() {
return fecha
+ "," + inMuertos + "," + muertos
+ "," + muertosMillon + "," + inConfirmados
+ "," + confirmados + "," + conf14Dias + "\n";
}
MAIN
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
//URL
URL u1;
BufferedReader b1;
//clase
Tabla t1 = new Tabla();
//ficheros
FileWriter fSal;
FileOutputStream fSalBin;
ObjectOutputStream objeto;
//variables
String cad = "";
String[] cadenas;
String scad = "";
String[] dato;
String[] subdato;
int cont = 0;
try {
u1 = new
URL("https://datosmacro.expansion.com/otros/coronavirus/espana");
b1 = new BufferedReader(new InputStreamReader(u1.openStream()));
}
}
FIN DE LA DE VERSION DE LA MARIA ELENA
CIFRADO DE UN FICHERO
public static void main(String[] args) {
// Declarar las variables
FileInputStream fe = null;
Random r = new Random();
FileOutputStream fs = null;
byte[] texto = new byte[128];
byte[] textocifrado = new byte[128];
int aleatorio, leidos = 0;
try {
System.out.println("El numero aleatorio es " +(aleatorio=
r.nextInt(101)));
fe = new FileInputStream("bitacora.txt");
fs = new FileOutputStream("cifrado.txt");
leidos = fe.read(texto);
while (leidos!=-1) {
for (int i = 0; i < texto.length; i++) {
textocifrado[i] = (byte) (texto[i] ^ aleatorio);
}
fs.write(textocifrado, 0, leidos);
leidos = fe.read(texto);
}
} catch (FileNotFoundException ex) {
System.out.println(ex.toString());
} catch (IOException ex) {
System.out.println(ex.toString());
}finally{
try {
fe.close();
fs.close();
} catch (IOException ex) {
System.out.println(ex.toString());
}
}
}
}
FIN DE CIFRADO DE UN FICHERO
DESCIFRADO DE UN FICHERO