Java - COPIA DE FICHEROS

   
Vista:

COPIA DE FICHEROS

Publicado por jose (1 intervención) el 16/12/2009 14:07:12
Hola, Bueno les comento mi problema estoy desarrollando un pogramita que me modifique un fichero de texto,para ello tengo que buscar una cadena que este en el fichero y a partir de esa cadena del fichero, insertar un texto dado. Ejemplo

##INICIO
hola
perro
gato
casa
##FIN
Mi cadena a buscar seria perro, y el fichero que insertaria despues
##INICIO##
zapato
#FIN#

RESULTANTE
##INICIO
hola
perro
zapato
##

Mi idea es utilizar bufferReader y Bufferwriter, he estado probando cosas , me gustaria copiar el fichero 1, a otro aux hasta que encuentre la cadena, y copiar el fichero 2 a continuacion en el aux. teniendo el resultante.

A ver si me podeis echar una mano por que logro copiar exactamente el fichero 1 a otro aux hasta que caracter leido =! null pero no soy capaz de buscar la cadena "perro" ene ste ejemplo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:COPIA DE FICHEROS

Publicado por wydangyr (1 intervención) el 17/12/2009 17:59:16
hola jose
para buscar la cadena pero puedes usar el metodo indexof() de la clase String el cual devuelve un entero con la posicion en la que se encuentra la cadena buscada sino esta rgresara -1

mira me tome la molestia de hacer una clase para lo que describiste en el problema

cual quier duda publicala o me consultas por el correo

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Main {

static File archivo = null;
static FileReader leerarchivo = null;
static BufferedReader br = null;
static FileWriter fichero = null;
static PrintWriter pw = null;

static String texto="";
static String texto_a_buscar="perro";
static String texto_a_ingresar="zapato";

public static void main(String[] args) {
try {
archivo = new File ("/home/wydangyr/texto.txt");//este fichero es el que contiene el texto original
leerarchivo = new FileReader (archivo);
fichero= new FileWriter("/home/wydangyr/bb.txt");
pw = new PrintWriter(fichero);

br = new BufferedReader(leerarchivo);

while((texto=br.readLine())!=null)
{
System.out.println(texto);
pw.println(texto);
if(texto.indexOf(texto_a_buscar)!=-1)
{
pw.println(texto_a_ingresar);
pw.println("## ");
break;
}

}
} catch (Exception e) {
}
finally
{
try {
fichero.close();
} catch (IOException ex) {

}
}
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COPIA DE FICHEROS

Publicado por jose (3 intervenciones) el 18/12/2009 10:50:00
Gracias amigo le echare un vistazo , tiene muy buena pinta al finel yo encontre el compareto... pero esto del indexOff esta muy bien tb.
Gracias de nuevoo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COPIA DE FICHEROS

Publicado por jose (3 intervenciones) el 18/12/2009 11:23:27
Wydangyr no me aparece tu correo para poder escribirte mis dudas, pruimero de todo garcias y nada que el programa me da un error en la sentencia que cirras el fichero fichero.clos(); :S, y otra cosa la idea esta bien pero lo que pasa que no voy a sustituir una cadena si no que cuando encuentre una cadena insertare un texto, de otro fichero a ver si me puedes dar una idea. Graciass
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COPIA DE FICHEROS

Publicado por jack (18 intervenciones) el 18/12/2009 15:26:52
hola jose
desde ahora me conoceras como jack mi msn es jack@linuxmail.org agregalo al msn o enviame tus correos se ve raro pero agregalo an messenger que igual sirve
primero que todo asegurate de copiar el codigo con todas las laves { } pues yo copio el codigo y me va bien no tiene errores, tambien asegurate de cambiar las rutas de los archivos por las de tu equipo
ahora respecto al comparato y al indexof depende de lo que necesites, es decir el comparato compara dos cadenas , es decir que cadena1 sea igual a cadena2 y regresa un int negativo si la primera cadena esta antes en el orden alfabetico, regresa un 0 si son iguales y un int positivo si esta despues en el orden alfabetico

por otro lado tenemos el indexof que lo que hace es buscar que la cadena2 este contenida en la cadena1 es perfecto cuando las lineas de archivo que lees estan conformadas por varias palabras, haci que eso depende de lo que necesitas

qui te dejo un ejemplo igresando el texto contenido en otro archivo


import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Main {

static File archivo = null;
static FileReader leerarchivo = null;
static BufferedReader br = null;
static FileWriter fichero = null;
static PrintWriter pw = null;

static String texto="";
static String texto_a_buscar="perro";
static String texto_a_ingresar="";



public static void main(String[] args) {
try {
archivo = new File ("/home/jack/aa.txt");//este fichero es el que contiene el texto original
leerarchivo = new FileReader (archivo);
fichero= new FileWriter("/home/jack/bb.txt");//este sera el nuevo archivo
pw = new PrintWriter(fichero);

br = new BufferedReader(leerarchivo);

while((texto=br.readLine())!=null)
{

pw.println(texto);

if(texto.indexOf(texto_a_buscar)!=-1)
{

File archivo_a_ingresar = new File ("/home/jack/zz.txt"); //estees el archivo a ingresar
FileReader leer_archivo_a_ingresar = new FileReader (archivo_a_ingresar);
BufferedReader Bfrd = new BufferedReader(leer_archivo_a_ingresar);

while((texto_a_ingresar=Bfrd.readLine())!=null)
{

pw.println(texto_a_ingresar);
}
break;
}

}
} catch (Exception e) {
}
finally
{
try {
fichero.close();
} catch (IOException ex) {

}
}
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:COPIA DE FICHEROS

Publicado por jose (3 intervenciones) el 21/12/2009 12:11:26
hola amigo. michas gracias por las molestias y nada decirte que ya te he agregado al messenger , ya he solucionado el problemilla que tenia al final utilize el compare To , y nada ahora estoy con otra cosa para meter el parametro de la cadena a buscar por entrada, a ver sit e veo por el messenger o te mando un correo para preguntarte, nu saludo y gracias.

Feliz Navidad!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar