Autor Tema: Java leer y escribir archivos (ficheros) de texto o binarios BufferedReader  (Leído 33656 veces)

georgerock

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
hola que tal necesito su ayuda para realizar este programa
leer un archivo en java y que escriba el contenido del mismo en otro archivo
« Última modificación: 05 de Marzo 2015, 08:39 por Alex Rodríguez »

dongo

  • Intermedio
  • ***
  • Mensajes: 177
    • Ver Perfil
Re:principiante en java
« Respuesta #1 en: 14 de Agosto 2014, 12:08 »
Bueno si estas empezando con java... Creo que no has empezado por un buen sitio. Y no se,  pero si de verdad tienes intención de aprender, deberías empezar desde el principio y al menos escribirnos los intentos que has echo para ver donde esta el posible fallo y así poder guiarte, con lo que nos escribes, no tengo por donde empezar. Si quieres que te lo explique dinos en que exactamente tienes dudas. De esta manera, simplemente lo que puedo hacer es hacértelo....

Aparte de mi retaila(lo siento pero soy así), tu pregunta es un poco ambigua, que tipo de ficheros quieres copiar? uno binario(por ejemplo una  imagen), uno de texto... dependiendo si es uno u otro se leerá o escribirá el fichero de una forma distinta...Te pondré un ejemplo de ambos, pero no te acostumbres... ;) Cuando tengas alguna duda, escríbenos tus intentos, explícanos donde te falla, que problemas tienes, etc...

Fichero de texto:

Código: [Seleccionar]
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;


public class CopiaFicheroTexto {
    public static void main(String[] arg){
        String rutaFichOrigen="E:\\ejemplo\\fichero_ejemplo.txt";//Ruta al fichero de origen
        String rutaFichDestino="E:\\ejemplo\\copia_fichero_ejemplo.txt"; //Ruta al fichero de destino
        File ficheroOrigen=new File(rutaFichOrigen);//Creamos objeto de tipo fichero con la ruta origen.
        File ficheroDestino=new File(rutaFichDestino);//Creamos objeto de tipo fichero con la ruta destino.
        BufferedReader lectorFichero;//Creo un objeto buffer de lectura.
        BufferedWriter escritorFichero;//Creo un objeto buffer de escritura.
        try{
            lectorFichero=new BufferedReader(new FileReader(ficheroOrigen));//Inicializa el buffer de lectura con un objeto de tipo FileReader(lector de fichero).
            escritorFichero=new BufferedWriter(new FileWriter(ficheroDestino));//Inicializa el buffer de escritura con un objeto de tipo FileWriter(escritor de fichero).
            String linea;//variable ke ira conteniendo la linea ke leemos para despues escribirla
            while((linea=lectorFichero.readLine())!=null){ //mientras haya lineas...
                escritorFichero.write(linea+"\n");//Escribe la linea al fichero destino
                System.out.println(linea);//se imprime la linea copiada por consola
            }
           
            lectorFichero.close();//cerramos el lector
            escritorFichero.close();//cerramos el escritor
        }
        catch(FileNotFoundException e){
            e.printStackTrace();//traza de excepcion
           
        }
        catch(IOException e){
            e.printStackTrace();//traza de excepcion
        }
    }
}

Fichero binario(imagen, exe, pdf, doc, odt, ...):

Código: [Seleccionar]
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;


public class CopiaFicheroBinario {
    public static void main(String[] arg){
        String rutaFichOrigen="E:\\ejemplo\\imagen.png";//Ruta al fichero de origen
        String rutaFichDestino="E:\\ejemplo\\copia_imagen.png"; //Ruta al fichero de destino
        File ficheroOrigen=new File(rutaFichOrigen);//Creamos objeto de tipo fichero con la ruta origen.
        File ficheroDestino=new File(rutaFichDestino);//Creamos objeto de tipo fichero con la ruta destino.
        BufferedInputStream lectorFichero;//Creo un objeto flujo buffer de lectura .
        BufferedOutputStream escritorFichero;//Creo un objeto flujo buffer de escritura.
        try{
            lectorFichero=new BufferedInputStream(new FileInputStream(ficheroOrigen));//Inicializa el buffer de lectura con un objeto de tipo FileInputStream(Flujo de entrada a fichero).
            escritorFichero=new BufferedOutputStream(new FileOutputStream(ficheroDestino));//Inicializa el buffer de escritura con un objeto de tipo FileOutputStream( flujo de salida a fichero).
            int bytes;//variable ke ira conteniendo el byte a copiar en cada momento.
            while((bytes=lectorFichero.read())!=-1){ //mientras no llegue a fin de fichero...
                System.out.println((char)bytes);//se imprime el byte a copiar convertido a caracter por consola(no tiene sentido)
                escritorFichero.write(bytes);//se copia el flujo de bytes al fichero destino.
            }
           
            lectorFichero.close();//cerramos el lector
            escritorFichero.close();//cerramos el escritor
           
        }
        catch(FileNotFoundException e){
            e.printStackTrace();//traza de excepcion
           
        }
        catch(IOException e){
            e.printStackTrace();//traza de excepcion
        }
    }
}

Bueno, ahí tienes un ejemplo de cada uno, como te digo, si pretendes entenderlo sin tener una buena base, será complicado y bueno intenta la próxima vez hacer algo... XDD Un saludo!

nota: En las dos primeras lineas tras el main en ambos ficheros es donde debes modificar la ruta  de acuerdo al fichero origen y fichero destino que quieras copiar dentro de tu pc.
« Última modificación: 14 de Agosto 2014, 12:15 por dongo »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".