basic i o operations java
En este tutorial de video, discutiremos el mecanismo de entrada y salida de Java, como la entrada de usuario de Java, InputStream, Java Printf, Println, etc. con dispositivos de E / S estándar:
En cada lenguaje de programación, necesitamos tener un mecanismo para leer los datos de entrada y también enviar los datos procesados que también se conocen como Salida al usuario final.
Como usted sabe, hay muchos dispositivos de entrada y salida en el mundo del software que los programadores pueden usar para leer datos y escribir o enviar datos.
Lea nuestro Serie completa de formación en Java para obtener más información sobre los conceptos de Java.
Lo que vas a aprender:
- Video tutorial sobre operaciones básicas de E / S en Java
- Ejemplos adicionales: flujos de entrada / salida
- Conclusión
Video tutorial sobre operaciones básicas de E / S en Java
Con un programa Java, puede leer y escribir datos de diferentes fuentes y destinos. Las fuentes y destinos de datos de lectura y escritura incluyen:
- Archivos
- Tubería
- Conexiones de red
- Búferes en memoria ( P.ej: matrices)
- System.in, System.out, System.error
En este video tutorial, tendremos la entrada como un archivo y exploraremos varias clases, interfaces y métodos que están disponibles para leer datos del archivo.
Operaciones IO básicas en Java:
Operaciones de archivos Java:
Java I / O (Input-Output) es un mecanismo estándar que procesa la entrada y genera la salida. El paquete 'java.io' contiene los métodos para realizar todas las operaciones de entrada y salida.
Para realizar operaciones de E / S más rápido, Java utiliza el concepto de flujos. Una secuencia se puede definir como una secuencia de datos que consta de bytes.
convertir youtube a mp3 más de 30 minutos
¡Aprendamos más sobre las transmisiones de E / S de Java!
Flujos de E / S estándar en Java
El lenguaje Java ofrece acceso a los recursos del sistema, dispositivos estándar de entrada y salida, etc. utilizando una clase 'Sistema'. Esta clase implementa una interfaz de programación dependiente del sistema para acceder a varios recursos.
La clase System pertenece al paquete 'java.lang' de Java. Además de proporcionar flujos de E / S estándar, la clase System también proporciona acceso a variables de entorno, variables externas, carga de archivos y bibliotecas, y también un método de utilidad arrayCopy para copiar parte de una matriz.
Como este tutorial se basa únicamente en E / S estándar, omitiremos el resto de las funciones proporcionadas por la clase System aquí.
Desde el punto de vista de entrada-salida, la clase System ofrece las siguientes corrientes:
# 1) Flujo de entrada estándar (System.in)
El flujo de entrada proporcionado por la clase System, System.in se usa para leer los datos de entrada de un dispositivo de entrada estándar como un teclado.
La secuencia permanece abierta y está lista para leer los datos proporcionados por el usuario al dispositivo de entrada estándar.
El siguiente ejemplo demuestra la función System.in.read para leer un solo dígito entero.
|_+_|Producción:
# 2) Flujo de salida estándar (System.out)
La interfaz System.out de la clase System se utiliza para escribir la salida del programa en el dispositivo de salida estándar como el monitor. En la mayoría de los casos, la interfaz System.out escribe la salida del comando en el dispositivo de salida estándar.
Utiliza tres métodos de la clase 'PrintStream' ya que la salida estándar deriva de esta clase.
Estos métodos son:
- imprimir
- println
- escribir
Los métodos “print” y “println” tienen la misma funcionalidad excepto por una única diferencia que el método println agrega un carácter de nueva línea ( n) a la salida.
El método de escritura no se usa con frecuencia, excepto en los casos en que se mostrarán datos que no son ASCII.
El siguiente ejemplo demuestra la secuencia System.out.
|_+_|Producción:
El programa anterior muestra las funciones 'print' e 'println' utilizadas con la interfaz System.out. Aquí hemos definido variables de diferentes tipos de datos y mostramos cada una de ellas usando la interfaz System.out.
# 3) Secuencia de errores estándar (System.err)
El flujo de errores estándar, System.err, se utiliza para mostrar errores, si los hay, durante la ejecución del programa.
Al igual que la secuencia System.out, la secuencia de errores también admite los tres métodos de la clase PrintStream, print, println y write.
Métodos para leer la entrada desde la consola
Aparte del flujo de entrada descrito anteriormente, hay algunos métodos más con los que podemos leer datos de entrada desde la consola en Java.
Estos métodos se analizan a continuación.
# 1) Class BufferedReader
La clase BufferedReader se introdujo por primera vez en JDK 1.0 y es el método clásico de leer datos de entrada desde la consola.
El flujo de entrada (System.in) está envuelto dentro de la clase InputStreamReader que a su vez está envuelto en BufferedReader.
El siguiente programa muestra el uso de la clase BufferedReader para leer datos de entrada del usuario.
|_+_|Producción:
En el programa anterior, hemos declarado un objeto de la clase BufferedReader inicializado en System.in stream. Usando este objeto, leemos una línea completa de entrada.
Como puede ver, puede leer todos los datos almacenados en búfer, lo que hace que esta funcionalidad sea muy eficiente. El único inconveniente es el código críptico que puede ser difícil de recordar cada vez.
# 2) Clase de consola
La clase 'System.console' se puede utilizar para leer la entrada de la consola. Esto se usa para leer especialmente caracteres de entrada como una contraseña desde la línea de comando.
El método de leer datos de entrada usando la clase de consola es actualmente el método más eficiente y preferido en Java.
El siguiente programa demuestra la clase System.console.
|_+_|Producción:
Usando la clase System.console, puede leer los caracteres de entrada sin hacer eco de los caracteres. Por tanto, este método es más útil para leer contraseñas. En segundo lugar, también puede utilizar cadenas de formato para formatear los datos de entrada, similares a las utilizadas en System.out.printf ().
Aunque esta es la forma preferida de leer los datos de entrada, tenga en cuenta que la clase System.console no se puede utilizar con un entorno Java interactivo como los IDE.
# 3) Escáner
Usar una clase de escáner para leer datos de entrada es probablemente el método más rápido y preferido. El escáner se utiliza principalmente para analizar los tipos de datos, incluidos los tipos primitivos y las cadenas. Pero también se puede usar para leer los datos de entrada y analizarlos usando la entrada tokenizada.
La clase de escáner usa expresiones regulares para este propósito.
El siguiente programa lee los datos de entrada del usuario que usa la clase de escáner.
|_+_|Producción:
En el programa anterior, hemos utilizado la clase de escáner para leer la cadena y los datos enteros.
Formateo de salida en Java usando printf
Ya hemos visto cómo mostrar la salida en un programa Java. En esta sección, veremos cómo formatear esta salida. Hacemos uso de la función printf de la clase 'PrintStream' junto con el flujo 'System.out' de Java para este propósito.
La función printf en Java es similar a la función printf en C / C ++. A diferencia de las funciones System.out.print y System.out.println que toman un solo argumento, System.out.printf toma más de un argumento.
Las siguientes son las variaciones de la función printf en Java.
No | Prototipo de función | Descripción |
---|---|---|
1 | System.out.printf (cadena); | Imprime una cadena proporcionada en el argumento sin ningún formato |
2 | System.out.printf (formato, argumentos); | Imprime la salida usando la cadena de formato 'formato' y argumentos especificados. |
3 | System.out.printf (configuración regional, formato, argumentos); | Imprime la salida utilizando una cadena de formato especificada aplicando la configuración regional y los argumentos. |
Tenga en cuenta que la función System.out.format () es la misma que System.out.printf ().
La sintaxis general para especificar la cadena de formato es la siguiente:
|_+_|Por ejemplo:
|_+_|Generará la siguiente salida:
’02.28’
Discutiremos printf en Java en detalle en los temas posteriores de este tutorial.
Preguntas frecuentes
P # 1) ¿Qué son la entrada estándar y la salida estándar?
Responder: Los flujos de entrada y salida estándar son canales preconectados para comunicarse entre el programa de computadora y el entorno externo cuando el programa comienza su ejecución. Los tres flujos de E / S estándar diferentes son entrada estándar (stdin), salida estándar (stdout), error estándar (stderr).
cuál es el mejor limpiador de computadora gratuito
Q #2) ¿Qué es la entrada estándar en programación?
Responder: La entrada estándar o stdin es la secuencia que se usa para leer la entrada de un dispositivo de entrada estándar como un teclado.
Q #3) ¿Qué es el flujo de entrada-salida?
Responder: Un flujo de entrada-salida representa una fuente de la que lee la entrada y el destino al que dirige su salida.
Una secuencia, en general, representa muchos dispositivos que se utilizan como origen y destino, a saber, teclado, archivo de disco, monitores, etc.
Q #4) ¿Qué es la entrada estándar en Java?
Responder: La clase System proporciona la entrada estándar en Java como una secuencia System.in. La clase System es parte del paquete java.lang.
Q #5) ¿Cuál es la salida estándar en Java?
Responder: La salida estándar en Java la proporciona la clase System como una secuencia System.out. La clase System es parte del paquete java.lang.
Ejemplos adicionales: flujos de entrada / salida
Los flujos representan el flujo de datos y esos datos pueden estar en cualquier formato (como byte, texto, tipo de datos primitivos, etc.). Para escribir datos en un destino, se usa el flujo de salida y para leer los datos, se usa el flujo de entrada.
Diferentes formatos de lectura y escritura
La entrada / salida se puede leer / escribir en los siguientes formatos diferentes:
# 1) Leer archivo como flujo de bytes
Aquí los datos se leerán en formato de bytes. ' FileInputStream ” y ' FileOutputStream “Las clases se utilizan para leer el contenido como un byte. De esta forma, por cada byte, el compilador enviará una solicitud al SO.
|_+_|
# 2) Leer archivo como flujo de caracteres
De esta forma, el flujo de entrada se leerá en formato de caracteres. Entonces, para cada carácter, el compilador enviará una solicitud al sistema operativo. ' FileReader ” y ' FileWriter ” las clases son útiles para leer el contenido como el personaje.
|_+_|
# 3) Almacenamiento en búfer del flujo de entrada / salida
Cuando usa las clases FileInputStream o FileReader, para cada operación de lectura o escritura, se enviará una nueva solicitud al sistema operativo. Por lo tanto, esto puede provocar problemas de rendimiento. Para evitar este BufferedInputStream o BufferedReader, las clases se utilizan para envolver las clases sin búfer.
Esto lee el flujo de entrada cuando el búfer está vacío.
Del mismo modo, FileOutputStream o FileWriter, las clases se envuelven con BufferedOutputStream o BufferedWriter para escribir la salida una vez que el búfer está lleno.
|_+_|
# 4) Lectura como flujo de datos
En este método, las clases DataInputStream o DataOutputStream se utilizan para leer y escribir el contenido como tipos de datos primitivos como boolean, char, byte, short, int, long, float, double y String. En su mayoría, DataInputStream y DataOutputStream se utilizarán juntos.
|_+_|
# 5) Lectura como flujo de objetos
ObjectInputStream / ObjectOutputStream, las clases son útiles para escribir objetos en un archivo y leer los objetos del archivo. Para almacenar el objeto en un archivo, la clase debe implementar la interfaz serializable.
|_+_|
Vamos a crear un objeto para esta clase 'ObjectStreamDemo' y escribiremos ese objeto en un archivo y leeremos el mismo objeto de ese archivo.
|_+_|
Operaciones de E / S de archivos
La clase de archivo es útil para realizar operaciones con archivos.
Algunas de las operaciones de archivo realizadas con la clase de archivo incluyen:
- Crea un archivo
- Verifique si el archivo existe
- Obtener la ruta del archivo
- Escribe el archivo
- Leer el archivo
- Eliminar un archivo y cambiar el nombre del archivo
- Verifique los permisos del archivo y cambie los permisos del archivo
- Mover el archivo de un directorio a otra ubicación
Programa de demostración para crear, leer y escribir el archivo:
|_+_|
Puntos clave a tener en cuenta:
- Un flujo es una representación lógica del flujo de datos.
- Puede leer / escribir datos en un formato diferente como byte, carácter, objeto, tipo de datos primitivo.
- La clase de archivo se utiliza para crear un archivo, eliminar el archivo y Mover o copiar o cambiar el nombre del archivo.
- BufferedInputStream o BufferedOutputStream se utiliza para mejorar el rendimiento almacenando los datos en búfer.
Conclusión
Java tiene un paquete java.lang que proporciona las funciones estándar de entrada y salida utilizando la clase System.
Además de los flujos, System.in y System.out que se utilizan para la entrada y salida estándar respectivamente, también hay otros métodos como BufferedReader, la clase de consola y la clase de escáner que se utilizan para leer la entrada del usuario.
System.out stream usa la función de clase 'PrintStream', print e println para mostrar la salida. Estas son las funciones que se utilizan para mostrar la salida sin formatear. Otra función 'printf' que es similar a la función printf en C / C ++ también se usa en Java para la salida formateada.
Exploraremos más sobre la clase de escáner y la función printf en Java en nuestros próximos tutoriales.
=> Visite aquí para ver la serie exclusiva de tutoriales de capacitación en Java.
PREV Tutorial | SIGUIENTE Tutorial
Lectura recomendada
- Operaciones básicas de entrada / salida en C ++
- Operaciones de entrada y salida de archivos en C ++
- Tutorial de Java Collections Framework (JCF)
- Implementación de Java: creación y ejecución de un archivo JAR de Java
- Máquina virtual Java: cómo JVM ayuda a ejecutar aplicaciones Java
- Entrada-Salida y Archivos en Python (Python Abrir, Leer y Escribir en Archivo)
- Modificadores de acceso en Java: tutorial con ejemplos
- Tutorial de reflexión de Java con ejemplos