Está en la página 1de 47

Entrada y Salida

Objetivo :
FACILITADORES
Mostrar algunas de las
clases y métodos para
la entrada y salida de ISC. MARIBEL BUENO
datos
QUIÑONES

MC. MA. ELENA


MONTES ALMANZA

ME. PEDRO CELESTINO


RAMIREZ
Clase String

Una String es una


variable referenciada
asociada a un objeto de
la clase java.lang.String.

Se emplea para
almacenar cadenas de
caracteres.
FORMATEO DE CADENAS
PROGRAMA EJEMPLO:
Se sustituirían los especificadores
String.format() %s por el valor de las variables
usuario y mensajes respectivamente

public class EjemploFormat {


• Hace uso del método estático format de la
clase String para crear una cadena. public static void main(String[] args) {
String usuario = "zootropo";
int mensajes = 36;
• Que puede imprimirse con:
String usuario = String.format("%s escribió %s
mensajes", usuario, mensajes);

System.out.println(usuario);
System.out.println()
}
System.out.print().
}
• Este método toma como parámetros una
cadena con uno o más especificadores de
conversión y una lista de argumentos.
Zootropo escribió 36 mensajes
Especificadores de formato y su Sintaxis

Especificador Formato Pueden usarse siguiente formato:


%b Booleano
%[índice$][ opciones][ancho][.precisión]conversión
%h Hashcode
•índice se utiliza para indicar específicamente el
%s Cadena
tipo de dato que tendrá la lista de valores por el
%c Caracter unicode que sustituirlo.

%d Entero decimal •ancho es un entero no negativo que indica el


%o Entero octal número de caracteres mínimo que debe ocupar ese
valor al mostrarse en pantalla. Si el valor tiene
%x Entero hexadecimal menos caracteres que los indicados se rellenará el
%f Real decimal vacío con espacios.

%e Real notación científica


•precisión es un entero no negativo que indica el
Real notación científica o número de decimales a utilizar para un número en
%g
decimal
Real hexadecimal con coma flotante (la misma función se encarga de
%a
mantisa y exponente redondear) o el número de caracteres a mostrar
%t Fecha u hora para una cadena.
EJEMPLOS
Ejemplo1 Ejemplo2
public class Ejemplo { public class Ejemplo {
public static void main(String[] args) { public static void main(String[] args) {
int numero = 42; float numero = 3.14159f;
String s = String.format("%1$d en hexadecimal es String s = String.format("PI es %.3f", numero);
%1$x", numero); System.out.println(s);
System.out.println(s);
}
}
}
}
System.out.printf()

public class Ejemplo {


• Muestra cadenas
formateadas en la consola public static void main(String[] args) {
• Funciona de forma similar a float numero = 3.14159f;
una combinación de
String.format() y System.out.printf("PI es %.3f", numero);
System.out.print() }
}
• Pasar directamente la
cadena con los
especificadores de
conversión y la lista de
argumentos para imprimirse,
de forma similar a la
función printf de C.
Clase BufferedReader
Clase InputStreamReader
Entrada/Salida en Java
La Entrada/Salida de Java se organiza
generalmente mediante objetos llamados
Streams

su origen o
destino
puede ser un
secuencia fichero, pero
ordenada de
datos con un también un
determinado String o un
origen y destino dispositivo
Un Stream es la (p.e) .
generalización de
un fichero:
Entrada/Salida en Java

 Un stream representa un flujo de información:


 procedente de una fuente (teclado, file, memoria, red, etc.) o dirigida
a un destino (pantalla, file, etc.)
 Los streams comparten una misma interfaz que hace
abstracción de los detalles específicos de cada dispositivo de
E/S.
• Se abre en el momento de su
Para poder creación
usar un stream • Se debe cerrar cuando se deja
de utilizar

Las clases relacionadas con streams


se encuentran definidas en el
paquete java.io (io es la abreviatura
de Input/Output)
Clasificación de los streams
Por el tipo de datos que “transportan”:
 binarios (de bytes) 0 y 255.
 de caracteres (de texto) Por el sentido del flujo de datos:
 de entrada: los datos fluyen desde el dispositivo o fichero hacia el
programa
 de salida: los datos fluyen desde el programa al dispositivo
 Flujos estándar
 Clase Consola . Entre teclado y pantalla y Salida en archivos.
 Flujos de Datos (DataImputStream y DataOutputStream)
 Flujos de objetos
Según su cercanía al dispositivo:
 iniciadores: son los que directamente vuelcan o

recogen los datos del dispositivo


 filtros: se sitúan entre un stream iniciador y el
programa
Uso de los Streams

 Normalmente se utilizan por parejas


 • formadas por un stream iniciador y un filtro
Entrada de datos (System.in)

1. Se emplea la clase InputStreamReader para crear un


objeto inicializado en System.in para recibir datos desde
la entrada estándar del sistema (el teclado).

InputStreamReader isr = new InputStreamReader(System.in);

2. Este objeto se utiliza para inicializar otro objeto de la clase


BufferedReader que permite captar línea de caracteres del teclado con
el método readLine() el cual crea un objeto cadena.

BufferedReader entrada=new BufferedReader(isr);


String cd= entrada.readLine();

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


cadena = br.readLine();
String Nombre
 Animal perro especie
String Nombre Raza
especie Int Edad
Raza Gato Double Tamaño
Int Edad Color
Double Tamaño dueño
Color String Nombre
dueño perico especie
Raza
Int Edad
Double Tamaño
Color
Animal perro = new Animal(); dueño
Animal gato= new Animal();
Animal gatopersa=new Animal()
Salida de datos (System.out)

 System.out es una referencia al objeto de la clase


PrintStream que usa los siguientes métodos.
 print() Transfiere una cadena de caracteres al buffer de
salida.
 println() Transfiere una cadenas de caracteres y el carácter
fin de línea al buffer de la pantalla.
 flush() El buffer con las cadenas almacenadas las vuelca
en pantalla.
Ejemplos
 System.out.println(“ Esto es una cadena”);
Variable

 System.out.println(“radio”+ r + ”,” + “area” + area);

Carácter de concatenación

Mensaje de texto
Ejemplos
import java.io.*;
public class App{
publis static void main ( String [] arg) throws IOException{
String nombre ;
String edad;
InputStreamReader isr= new InputStreamReader(System.in)
BufferedReader br =new BufferedReader (isr);
System.out.print(“introduzca una línea por el teclado que indique tu
nombre ”);
System.out.flush();
nombre = br.readLine();
System.out.println(“proporciona tu edad”);
Edad= br.readLIne();
System.out.println(“Tu nombre es” + nombre );
System.out.println(“Tu edad es” + edad);
}}
import java.io.*;
public class Entrada{
Public static void main ( String [] args) throws IOException {

String Nombre;
String edad;
InputStreamReaders isr= new InputStreamReaders(System.in);
BuffedReaders ent=new BufferedReaders(isr);
System.out.println(“Proporcina tu nombre”);
ent.flush();
Nombre=ent.readLine();
System.out.println(“proporciona tu edad”);
edad=ent.readLine();
System.out.println(“Tu nombre es:”+””+Nombre+” tu edad es:” + edad);
}
}
import java.io.*;
public class SumaEnteros{

public static void main(String para[]) throws IOException{

String op1,op2;
int ent1, ent2;

InputStreamReader isc=new InputStreamReader(System.in);


BufferedReader cd=new BufferedReader(isc);
System.out.flush();
System.out.println(“Proporciona el operador 1 de la suma”);
op1=cd.readLine();
ent1=Interger.parseInt(op1);
System.out.println(“Proporciona el operador 2 de la suma”);
op2=cd.readLine();
ent2=Integer.parseInt(op2);
int resultado=ent1 +ent2;

System.out.printf(“El resultado de la suma es:” + resultado);


}
}
10 In t

int main(int a ){
}

System.out.print(“menú de Operac
Menú de operaciones
a. Suma de números enteros
b. b. Suma de números flotantes int opción;
1. Suma de números Bytes While ( opc1 ==“y” ) {
String Primitivo:
2. Suma de números booleanos swich(opción2){
datos Int
3. Salir case 1:
Float
//Introduscan los operandos y real
short
Deseas continuar (s/n)? impresión del reutado //
short a= Short.parseShort(datos);Break;
Case 2
Parsing de tipos básicos/cadena

 Cada tipo primitivo (básico) tiene un wrapper asociado derivado


de la clase Object que permite tratarlos como objetos.

 Cada una de estas wrapper classes (excepto Character) tiene un


método que permite convertir desde String al tipo primitivo.
Simplemente hay que llamar al método de la wrapper class
adecuada y el String se convierte al tipo básico.
Tipo de datos clase Objet Sintaxis
byte Byte Byte.parseByte(aString)
short Short Short.parseShort(aString)
int Int Integer.parseInt(aString)
long Long Long.parseLong(aString)
double Double Double.parseDouble(aString)
float Float Float.parseFloat(aString)
boolean Boolean Boolean.getBoolean(aString)
Ejemplo
String cd1, cd2;
float dato1, dato2;
BufferedReader br =new BufferedReader (new InputStreamReader(System.in));
System.out.print(“introduzca un numero flotante por el teclado”);
System.out.flush();
cd1 = br.readLine();
System.out.print(“introduzca otro flotante por el teclado”);
cd2 = br.readLine();
Dato1=Float.parseFloat(cd2) ;

ó
Datoent=Integer.parseInt(entrada.readLIne());
Ejemplo Conversiones
Public class Conversiones{
de temperaturas
public static void main(String ele…) throws IOException {
String far, cent;
int tf;
double tc;
Animal perro= new
InputStreamReader isc= new InputStreamReader(System.in));
BufferedReader br =new BufferedReader (isr);
System.out.printl(“ 1. °F a °C”);
System.out.printl(“ 2. °C a °F”);
Sytem .out .println (“3. C a K);
System.out.print(“introduzca una temperatura por el teclado en
grados °F”);
System.out.flush();
far = br.readLine();
tf=Integer.parseInt(far) ;
 Bytecode

Clase
Clase base
Carpeta scr aplicación Clase base

Miapli. java
Miapli.class Bytecode
Miapli.jar
Área donde ponemos los paquetes
Área para importar clases
import java.lang.*;
import java.io.*;
public class Perro {
Declaración de variables globales
Se ponen los constructores
Public Perro (){
} Cuerpo del
Creación métodos método 1

public void metodo1 (void){


}
Cuerpo
public static void main ( String a[]){
del
Variables
método
Creación de objetos main
Llamada de métodos
}
Parsing de tipos básicos/cadena

Los tipos de dato float y double la conversión puede realice con el


método de la clase valueOf().

cd= entrada.readLine();
d=Float.valueOf(cd);
Ó
concatenando las llamadas
d=Float.valueOf(entrada.readLine());
Clase JOptionPane
Cuadros de Dialogo
Cuadros de Entrada
para mostrar
cuadros de dialogo
La clase empaquetados, los
JOptionPane cuales permiten a
del paquete showMessageDialog
los programas
javax.swing mostrar ventanas
que contengan
mensajes para los
usuarios.

Salida de datos en un cuadro de texto

JOptionPane.showMessageDialog ()
Salida de datos en un cuadro de texto

Tipo de cuadro de dialogo Descripción

JOptionPane.ERROR_MESSAGE Muestra un cuadro de dialogo que


indica un error al usuario

JOptionPane.INFORMATION_MESSAGE Muestra un cuadro de dialogo con un


mensaje informativo para el usuario

JOptionPane.WARNING_MESSAGE Muestra un cuadro de dialogo que


advierte al usuario de un problema en
especial
JOptionPane.QUESTION_MESSAGE Muestra un cuadro de dialogo con un
? signo de interrogación para el usuario.
Este cuadro generalmente requiere de
una respuesta, como hacer clic en un
botón Si o NO

JOptionPane.PLAIN_MESSAGE Muestra un cuadro de dialogo que


Sin simplemente contiene un mensaje sin
icono.
icono
Salida de datos en un cuadro de texto

Mostrar solo un mensaje


Salida de datos en un cuadro de texto

Mostrar un mensaje y el valor de una variable

Mensaje de la
barra de título Resultados

Mensaje a
mostrar
El usuario hace
click para descartar
el cuadro de
dialogo
Salida de datos en un cuadro de texto
• Imprimir varias líneas de texto en un cuadro de diálogo.
• // paquetes de Java
• import javax.swing.JOptionPane; // el programa usa JOptionPane

• public class Bienvenido4 {


• // el método main empieza la ejecución de la aplicación de Java


• public static void main( String args[] )
• {
• JOptionPane.showMessageDialog( null, "Bienvenido\na\nla programacion\nen
Java!" );

• System.exit( 0 ); // terminar la aplicación con la ventana

• } // fin del método main

• } // fin de la clase Bienvenido4


Salida de datos en un cuadro de texto
Parsing o
Parseo

Muestra un cuadro
La clase de dialogo o un
JOptionPane cuadro de texto El valor recibido
donde el usuario es un String por
escribe caracteres y lo tanto hay que
showInputDialog hacer la
luego el botón conversión al tipo
del paquete aceptar para de dato deseado
javax.swing regresar la cadena
al programa .

Entrada de datos en un cuadro de texto


JOptionPane.showInputDialog ()
Entrada de datos mediante un
campo de entrada (texto)
Toma un
valor de
tipo String

Indicador
del usuario
NumVal =Integer.parseInt(entrada); o mensaje

45 Campo
que
recibe
el valor

Al presionar el botón
Devuelve el valor que
escribió el usuario
import javax.swing.*;
public class Ejemplo{
public static void main (String [] args ){
String entrada;
int Numval;
entrada =JOptionPane. showInputDialog(null, “Escribe un valor”);
Numval=Integer.parseInt(entrada);
System.exit(0);
}
}
Entrada de datos mediante un campo
de entrada (texto)
parseXxx(String)

Xxx es el tipo
al que se va a
convertir la
cadena de toString()
cambia
caracteres, en variable de
función de la tipo primitivo a
clase que se String
utilice
parseXxx(String)
1. import javax.swing.JOptionPane; // el programa utiliza JOptionPane

2. public class Suma{

3. public static void main( String args[] )


4. {
5. String primerNumero; // primera cadena introducida por el usuario
6. String segundoNumero; // segunda cadena introducida por el usuario

7. int numero1; // primer número a sumar


8. int numero2; // segundo número a sumar
9. int suma; // suma de numero1 y numero2

10. // leer el primer número del usuario como una cadena


11. primerNumero = JOptionPane.showInputDialog( "Escriba el primer entero" );

12. // leer el segundo número del usuario como una cadena


13. segundoNumero = JOptionPane.showInputDialog( "Escriba el segundo entero" );
1. // convertir los números de tipo String a tipo int
2. numero1 = Integer.parseInt( primerNumero );
3. numero2 = Integer.parseInt( segundoNumero );

4. // sumar los números


5. suma = numero1 + numero2;

6. // mostrar el resultado
7. JOptionPane.showMessageDialog( null, "La suma es " + suma, "Resultados",
JOptionPane.PLAIN_MESSAGE );

8. System.exit( 0 ); // terminar aplicación con la ventana

9. } // fin del método main


10. } // fin de la clase Suma
Clase Scanner
 Scanner C = new Scanner(System.in);
 Permite leer información desde el teclado
 Scanner: clase predefinida con métodos para leer

 La clase Scanner está definida en el paquete de clases java.util, por lo cual


hay que importarlo (el único paquete que se importa por defecto es
java.lang)

 import java.util.Scanner;
 importa la clase Scanner solamente
 import java.util.*;
 Importa todas las clases del paquete (solo para la compilación)
Scanner methods
 nextInt()lee un valor int introducido por el usuario:
 nextLong() lee un valor long introducido por el usuario.

 nextShort() lee un valor short introducido por el usuario.

 nextDouble() lee un valor double introducido por el


usuario.
 nextByte() lee un valor byte introducido por el usuario.

 nextBoolean() lee un valor boolean introducido por el


usuario.
 nextLine() lee un valor String introducido por el usuario.

 next()
import java.util.*;
Ejemplo
public class EntradaDeDatos {
public static void main(String[] args) {
int edad;
double prom;

Scanner consola = new Scanner(System.in);

ó
Scanner c;
c = new Scanner(System.in);

System.out.print(“Cual es tu edad? ");


edad = consola.nextInt();

System.out.println(edad + ¡Eso es bastante viejo! ");");


System.out.print(“Cual es tu promedio del semestre”);
prom= c.nextDouble();

System.out.print(“ el promedio es: “+ promedio);


coonsola.close();
}
public class InputValue { //Declaración de Scanner

public static void main(String[] args) {


public Scanner sc = new Scanner(System.in);
double number = 0.0;
try {
System.out.print("Introduce un número: ");
number = sc.nextDouble();
if(number%2==0) {
System.out.println("\t> " + number + " es par");
} else {
System.out.println("\t> " + number + " es impar");
} }
catch (Exception e) {
System.err.println("Error, no has introducido un número");
}
sc.close();
}
EJERCICIOS

 Escribe una aplicación que evalué un polinomio de


segundo grado usando la formula general .Utiliza las
clases de JOptionPane para la entrada y salida.

 Implementa un programa que permita al usuario


permita al usuario, ya sea escribir una temperatura en
grados Fahrenheit y muestre su equivalente en grados
centígrados y viceversa. Usa las siguientes formulas:
 C = 5.0/9.0*(F-32)
 F = 9.0/5.0*(C+32)

También podría gustarte