Java trae varios Streams con su paquete de E/S que ayuda al usuario a realizar todas las operaciones de entrada y salida. Estos flujos admiten todos los tipos de objetos, tipos de datos, caracteres, archivos, etc. para ejecutar completamente las operaciones de E/S.
Antes de explorar varios flujos de entrada y salida, veamos 3 flujos estándar o predeterminados que Java debe proporcionar y que también son los más comunes en uso:
- System.in : este es el flujo de entrada estándar que se utiliza para leer caracteres del teclado o cualquier otro dispositivo de entrada estándar.
- System.out : este es el flujo de salida estándar que se utiliza para producir el resultado de un programa en un dispositivo de salida como la pantalla de la computadora.
Aquí hay una lista de las diversas funciones de impresión que usamos para generar declaraciones:
- print() : este método en Java se usa para mostrar un texto en la consola. Este texto se pasa como parámetro a este método en forma de String. Este método imprime el texto en la consola y el cursor permanece al final del texto en la consola. La próxima impresión se lleva a cabo justo aquí.
Sintaxis:System.out.print(parameter);
Ejemplo:
// Java code to illustrate print()
import
java.io.*;
class
Demo_print {
public
static
void
main(String[] args)
{
// using print()
// all are printed in the
// same line
System.out.print(
"GfG! "
);
System.out.print(
"GfG! "
);
System.out.print(
"GfG! "
);
}
}
Producción:
GfG! GfG! GfG!
- println() : este método en Java también se usa para mostrar un texto en la consola. Imprime el texto en la consola y el cursor se mueve al comienzo de la siguiente línea en la consola. La siguiente impresión tiene lugar a partir de la siguiente línea.
Sintaxis:System.out.println(parameter);
Ejemplo:
// Java code to illustrate println()
import
java.io.*;
class
Demo_print {
public
static
void
main(String[] args)
{
// using println()
// all are printed in the
// different line
System.out.println(
"GfG! "
);
System.out.println(
"GfG! "
);
System.out.println(
"GfG! "
);
}
}
Producción:
GfG! GfG! GfG!
- printf() : este es el método más fácil de todos, ya que es similar a printf en C. Tenga en cuenta que System.out.print() y System.out.println() toman un solo argumento, pero printf() puede tomar múltiples argumentos . Esto se usa para formatear la salida en Java.
Ejemplo:// A Java program to demonstrate working of printf() in Java
class
JavaFormatter1 {
public
static
void
main(String args[])
{
int
x =
100
;
System.out.printf(
"Printing simple"
+
" integer: x = %d\n"
,
x);
// this will print it upto
// 2 decimal places
System.out.printf(
"Formatted with"
+
" precision: PI = %.2f\n"
,
Math.PI);
float
n =
5
.2f;
// automatically appends zero
// to the rightmost part of decimal
System.out.printf(
"Formatted to "
+
"specific width: n = %.4f\n"
,
n);
n =
2324435
.3f;
// here number is formatted from
// right margin and occupies a
// width of 20 characters
System.out.printf(
"Formatted to "
+
"right margin: n = %20.4f\n"
,
n);
}
}
Producción:
Printing simple integer: x = 100 Formatted with precision: PI = 3.14 Formatted to specific width: n = 5.2000 Formatted to right margin: n = 2324435.2500
- print() : este método en Java se usa para mostrar un texto en la consola. Este texto se pasa como parámetro a este método en forma de String. Este método imprime el texto en la consola y el cursor permanece al final del texto en la consola. La próxima impresión se lleva a cabo justo aquí.
- System.err : este es el flujo de error estándar que se utiliza para generar todos los datos de error que un programa podría arrojar, en una pantalla de computadora o cualquier dispositivo de salida estándar.
Esta transmisión también utiliza las 3 funciones mencionadas anteriormente para generar los datos de error:
- impresión()
- imprimir()
- imprimirf()
Ejemplo:
// Java code to illustrate standard // input output streams import java.io.*; public class SimpleIO { public static void main(String args[]) throws IOException { // InputStreamReader class to read input InputStreamReader inp = null ; // Storing the input in inp inp = new InputStreamReader(System.in); System.out.println( "Enter characters, " + " and '0' to quit." ); char c; do { c = ( char )inp.read(); System.out.println(c); } while (c != '0' ); } } |
Aporte:
GeeksforGeeks0
Producción:
Enter characters, and '0' to quit. G e e k s f o r G e e k s 0
Tipos de flujos:
- Según el tipo de operaciones , los flujos se pueden dividir en dos clases principales:
- Flujo de entrada: estos flujos se utilizan para leer datos que deben tomarse como entrada de una array o archivo de origen o cualquier dispositivo periférico. Por ejemplo, FileInputStream, BufferedInputStream, ByteArrayInputStream, etc.
- Flujo de salida: estos flujos se utilizan para escribir datos como salidas en una array o archivo o cualquier dispositivo periférico de salida. Por ejemplo, FileOutputStream, BufferedOutputStream, ByteArrayOutputStream, etc.
- Flujo de entrada: estos flujos se utilizan para leer datos que deben tomarse como entrada de una array o archivo de origen o cualquier dispositivo periférico. Por ejemplo, FileInputStream, BufferedInputStream, ByteArrayInputStream, etc.
- Dependiendo de los tipos de archivo , los flujos se pueden dividir en dos clases principales que se pueden dividir en otras clases, como se puede ver a través del diagrama a continuación, seguido de las explicaciones.
- ByteStream: Se utiliza para procesar datos byte a byte (8 bits). Aunque tiene muchas clases, FileInputStream y FileOutputStream son las más populares. FileInputStream se usa para leer desde el origen y FileOutputStream se usa para escribir en el destino. Aquí está la lista de varias clases de ByteStream:
Clase de corriente Descripción BufferedInputStream Se utiliza para el flujo de entrada almacenado en búfer. flujo de entrada de datos Contiene un método para leer tipos de datos estándar de Java. FileInputStream Esto se usa para leer desde un archivo. Flujo de entrada Esta es una clase abstracta que describe la entrada de flujo. flujo de impresión Contiene el método print() y println() más utilizado BufferedOutputStream Esto se utiliza para el flujo de salida almacenado en búfer. Flujo de salida de datos Contiene un método para escribir tipos de datos estándar de Java. FileOutputStream Esto se utiliza para escribir en un archivo. Salida de corriente Esta es una clase abstracta que describe la salida de flujo. Ejemplo:
// Java Program illustrating the
// Byte Stream to copy
// contents of one file to another file.
import
java.io.*;
public
class
BStream {
public
static
void
main(
String[] args)
throws
IOException
{
FileInputStream sourceStream =
null
;
FileOutputStream targetStream =
null
;
try
{
sourceStream
=
new
FileInputStream(
"sorcefile.txt"
);
targetStream
=
new
FileOutputStream(
"targetfile.txt"
);
// Reading source file and writing
// content to target file byte by byte
int
temp;
while
((
temp = sourceStream.read())
!= -
1
)
targetStream.write((
byte
)temp);
}
finally
{
if
(sourceStream !=
null
)
sourceStream.close();
if
(targetStream !=
null
)
targetStream.close();
}
}
}
Producción:
Shows contents of file test.txt
- CharacterStream: en Java, los caracteres se almacenan mediante convenciones Unicode (consulte esto para obtener más información). El flujo de caracteres automáticamente nos permite leer/escribir datos carácter por carácter. Aunque tiene muchas clases, FileReader y FileWriter son las más populares. FileReader y FileWriter son secuencias de caracteres que se utilizan para leer desde el origen y escribir en el destino, respectivamente. Aquí está la lista de varias clases de CharacterStream:
Clase de corriente Descripción BufferedReader Se utiliza para manejar el flujo de entrada almacenado en búfer. Lector de archivos Este es un flujo de entrada que lee desde el archivo. InputStreamReader Este flujo de entrada se utiliza para traducir byte a carácter. OutputStreamReader Este flujo de salida se utiliza para traducir caracteres a bytes. Lector Esta es una clase abstracta que define la entrada del flujo de caracteres. Escritor de impresión Contiene el método print() y println() más utilizado Escritor Esta es una clase abstracta que define la salida del flujo de caracteres. BufferedWriter Esto se usa para manejar el flujo de salida almacenado en búfer. FileWriter Esto se usa para generar un flujo que escribe en el archivo. Ejemplo:
// Java Program illustrating that
// we can read a file in a human-readable
// format using FileReader
// Accessing FileReader, FileWriter,
// and IOException
import
java.io.*;
public
class
GfG {
public
static
void
main(
String[] args)
throws
IOException
{
FileReader sourceStream =
null
;
try
{
sourceStream
=
new
FileReader(
"test.txt"
);
// Reading sourcefile and
// writing content to target file
// character by character.
int
temp;
while
((
temp = sourceStream.read())
!= -
1
)
System.out.println((
char
)temp);
}
finally
{
// Closing stream as no longer in use
if
(sourceStream !=
null
)
sourceStream.close();
}
}
}
Consulte aquí para ver la diferencia completa entre Byte y Character Stream Class en Java.
- ByteStream: Se utiliza para procesar datos byte a byte (8 bits). Aunque tiene muchas clases, FileInputStream y FileOutputStream son las más populares. FileInputStream se usa para leer desde el origen y FileOutputStream se usa para escribir en el destino. Aquí está la lista de varias clases de ByteStream:
Publicación traducida automáticamente
Artículo escrito por Chinmoy Lenka y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA