La clase FileInputStream es bastante útil para leer datos de un archivo en forma de secuencia de bytes. FileInputStream está diseñado para leer secuencias de bytes sin procesar, como imágenes, audio, video, etc. Para leer secuencias de caracteres, se recomienda FileReader . Se introdujo por primera vez en JDK 1.0.
Método FileInputStream skip()
El método skip(n) en FileInputStream es bastante útil ya que descarta los n bytes de datos desde el comienzo del flujo de entrada. Podemos entender su funcionamiento considerando el siguiente ejemplo,
Estamos leyendo un flujo de caracteres a través de FileInputStream y queremos leerlo después de omitir los primeros ocho caracteres del flujo. Deje que la string sea » GeeksforGeeks «, por lo que después de omitir los primeros ocho caracteres, nuestra string se convertirá en » Geeks «.
El método skip() es útil para lograr la tarea mencionada anteriormente. Este método se define en la clase FileInputStream del paquete Java.io.
El paquete Java I/O ayuda al usuario a realizar todas las operaciones de entrada y salida. Estos flujos admiten todos los objetos, tipos de datos, caracteres, archivos, etc., para ejecutar las operaciones de E/S por completo.
Sintaxis:
Input_File_Stream.skip(n) Input_File_Stream: The file input stream.
Parámetros:
- n − Un entero no negativo.
- Bytes que se van a omitir de una secuencia de caracteres.
Valor devuelto: Devuelve el número real de bytes omitidos.
Excepción: IOException : si n es un número entero negativo o se produce un error de E/S.
Ejemplo 1:
Java
// Java program to demonstrate the working // of skip() method in FileInputStream // Importing the class files // defined under io Package import java.io.FileInputStream; import java.io.IOException; // Public class public class GeeksforGeeks { // Main method public static void main(String[] args) throws IOException { FileInputStream inputFileStream = null; // Variables to store the fifth character int integerValue = 0; char characterValue; try { // Create new file input stream inputFileStream = new FileInputStream( "C:\\Users\\harsh\\Desktop\\GFG\\inputFile.txt"); // Skip 4 bytes from the beginning // in the file input stream inputFileStream.skip(4); // Read bytes from this stream // (first character only) integerValue = inputFileStream.read(); // Converting integer to character type characterValue = (char)i; // Print the character System.out.print("Character read: " + characterValue); } catch (Exception exception) { // If any error occurs exception.printStackTrace(); } finally { // Releasing all system resources if (inputFileStream != null) inputFileStream.close(); } } } // This code is contributed by Bhuwanesh
Pasos para la compilación en un sistema local:
1. Hemos guardado el programa anterior con el nombre » GeeksforGeeks » localmente:
2. Ahora vamos a crear un archivo de texto llamado «archivo de entrada «:
3. Necesitamos ingresar algún texto dentro del archivo de texto creado. Como ejemplo, hemos escrito » GeeksforGeeks » en el archivo de texto.
4. Ahora compilaremos nuestro programa a través del compilador javac usando el símbolo del sistema:
javac GeeksforGeeks.java
5. Como puede ver a continuación , se genera el archivo de código de bytes GeeksforGeeks.class . Ahora ejecuta el programa usando el siguiente comando:
java GeeksforGeeks
Producción:
Descripción de salida: Dado que hemos pasado 4 como argumento a la función skip() en el programa. Como podemos ver en la salida del programa, los primeros cuatro caracteres (o bytes) se saltan (‘ G ‘, ‘ e ‘, ’ e ‘, ’ k ‘). El quinto carácter en GeekforGeeks es ‘ s ‘, por lo tanto, ‘ s ‘ está impreso en la consola.
Ejemplo 2:
Java
// Java program to demonstrate the working // of skip() method in FileInputStream // Importing the FileInputStream class import java.io.FileInputStream; // Importing the IOException class import java.io.IOException; // Public class public class GeeksforGeeks { // Main method public static void main(String[] args) throws IOException { FileInputStream inputFileStream = null; int integerValue = 0; char characterValue; try { // Create new file input stream // Give the full path of the input file inputFileStream = new FileInputStream( "C:\\Users\\harsh\\Desktop\\GFG\\inputFile.txt"); // Skip 8 bytes from the beginning in the file // input stream inputFileStream.skip(8); // Print on console System.out.print("String read: "); // Iterate till EOF is not reached while ((integerValue = inputFileStream.read()) != -1) { // converts integer to character characterValue = (char)i; // prints character System.out.print(characterValue); } } catch (Exception exception) { // If any error occurs exception.printStackTrace(); } finally { // Releasing all system resources if (inputFileStream != null) inputFileStream.close(); } } } // This code is contributed by Bhuwanesh
Para compilar el programa anterior en un sistema local, podemos seguir los mismos pasos que hemos mencionado en el Ejemplo 1. Después de la compilación, podemos ejecutar el programa y genera la siguiente salida.
Producción:
Descripción de salida: como puede ver en la salida, se omiten los primeros ocho caracteres (‘ G ‘, ‘ e ‘, ‘ e ‘, ‘ k ‘, ‘ s ‘, ‘ f ‘, ‘ o ‘, ‘ r ‘). La string restante es » Geeks «, por lo que se imprime en la consola.