La lógica principal de copiar un archivo es leer el archivo asociado con la variable FileInputStream y escribir el contenido leído en el archivo asociado con la variable FileOutputStream . Podemos copiar un archivo de una ubicación a otra usando las clases FileInputStream y FileOutputStream en Java. Ahora, antes de continuar, analicemos los métodos esenciales que se utilizarán en el programa.
Método 1: read(): lee un byte de datos. Presente en FileInputStream.
Tipo de retorno: un valor entero
Sintaxis: Otras versiones
int read(byte[] bytearray or int read(byte[] bytearray, int offset, int length)
Método 2: write(int b) : Escribe un byte de datos. Presente en FileOutputStream
Sintaxis:
void write(byte[] bytearray) or void write(byte[] bytearray, int offset, int length)
Implementación: crearemos dos archivos llamados «demo.rtf» y «outputdemo.rtf» como otro archivo donde no hay contenido. A continuación se muestra una imagen del archivo «demo.rtf» como imagen de entrada de muestra.
- Primero, crearemos dos objetos de la clase File , uno referente a FileInputClass y el otro a FileOutputStream Class.
- Ahora crearemos objetos de la clase FileInputStream y la clase FileOutputStream antes de crear variables y asignar valores nulos a los tipos de datos correspondientes.
- Pase los objetos respectivos de los objetos FileInputStream y FileOutputStream
- Ahora, usando bucles, siga leyendo de un archivo y escríbalo en otro archivo usando FileOuputStream usando los métodos read() y write().
Sugerencia: Es una buena práctica cerrar los flujos para evitar pérdidas de memoria.
Ejemplo 1:
Java
// Java Program to Illustrate File InputStream and File // Importing required classes import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; // Main class class GFG { // Main driver method public static void main(String[] args) { // Creating object of File class // Passing files from directory of local machine File file = new File( "/Users/mayanksolanki/Desktop/demo.rtf"); File oFile = new File( "/Users/mayanksolanki/Desktop/outputdemo.rtf"); // Now creating object of FileInputStream // Here they are variables FileInputStream fis = null; FileOutputStream fos = null; try { // Now we make them as objects of both classes // and passed reference of file in directory fis = new FileInputStream(file); fos = new FileOutputStream(oFile); } // Catch block to handle exceptions catch (FileNotFoundException e) { // Display message if exception occurs // File Not Found or Path is Incorrect System.out.println(e.printStackTrace()); } try { // Now let us check how many bytes are available // inside content of file fis.available(); } catch (Exception e) { e.printStackTrace(); } // Using while loop to // write over outputdemo file int i = 0; while (i = fis.read() != -1) { fos.write(i); } // It will execute no matter what // to close connections which is // always good practice finally { // Closing the file connections // For input stream if (fis != null😉 { fis.clsoe(); } // For output stream if (fos != null) { fos.close(); } } } }
Salida: el mismo contenido se reflejará en el archivo «outputdemo.rtf» como se ve a continuación en el archivo «demo.rtf».
Ejemplo 2:
Java
// Java Program Illustrating Copying a src File // to Destination // Importing required classes import java.io.*; // Main class // src2dest class GFG { // Main driver method public static void main(String args[]) throws FileNotFoundException, IOException { // If file doesnot exist FileInputStream throws // FileNotFoundException and read() write() throws // IOException if I/O error occurs FileInputStream fis = new FileInputStream(args[0]); // Assuming that the file exists and // need not to be checked FileOutputStream fos = new FileOutputStream(args[1]); int b; while ((b = fis.read()) != -1) fos.write(b); // read() method will read only next int so we used // while loop here in order to read upto end of file // and keep writing the read int into dest file fis.close(); fos.close(); } }
Producción:
Salida Explicación: El nombre del archivo src y el archivo de destino deben proporcionarse mediante argumentos de la línea de comandos, donde args[0] es el nombre del archivo de origen y args[1] es el nombre del archivo de destino.
Este artículo es una contribución de Parul Dang . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA