Autor Tema: Java comprobar si existe un texto en un fichero (archivo) antes de añadirlo  (Leído 6791 veces)

Refer

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 14
    • Ver Perfil
Buenas a todos, tengo un problema al querer editar un fichero de texto, la cosa va asi.
Cuando escribo algo en un TextArea y lo guardo, este se almacena en el fichero registroDeUsuario.txt este se guarda, pero lo que yo busco es que no se guarde lo mismo.

Algo como esto:

Nombre: Hola como estas
y al mandarlo varias veses al archivo txt archivo pasa esto:
Marco: Hola como estas
Marco: Hola como estas
Marco: Hola como estas


 
Código: [Seleccionar]
                                             
 private void gurdarParaHistorial(){
        File registroTxt = new File("C:\\registroDeUsuario.txt");
        String historial2 = new String(campoTexto.getText());
        StringTokenizer st = new StringTokenizer(contenidoTexto,"\n");
       
        while(st.hasMoreTokens()){
            String linea = st.nextToken();
            try{
               
                FileWriter guardarTexto = new FileWriter(historial2,true);
               
                       
                guardarTexto.write(line+"\r"+"\n");
                guardarTexto.close();
            }catch(Exception error){
                JOptionPane.showMessageDialog(null,"Error al guardar el texto al historial");
            }
           
        }
    }         

Nesecito algo que  que compruebe que todo lo que escribio no existe o no esta registrado para poderlo añadir.
« Última modificación: 28 de Agosto 2015, 14:35 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Refer, si tienes el texto en líneas y no quieres que se guarde una línea igual a una existente, antes de escribir en el fichero tendrás que leer todas las líneas y comprobar si alguna de ellas es igual a la que se pretende escribir. En caso de que sea igual mostrar un mensaje de aviso indicando que ese texto ya existe en el fichero, y en caso de que no exista proceder a guardarlo.

En este hilo puedes ver cómo leer línea a lína un fichero: www.aprenderaprogramar.com/foros/index.php?topic=1154

Y en este ver un ejemplo de lectura y escritura en ficheros: https://www.aprenderaprogramar.com/foros/index.php?topic=712

Para comparar el contenido de líneas tendrás que usar un método como equals aplicado sobre Strings, tendrás que hacer pruebas pues puede verse influido por los caracteres de salto de línea y retorno de carro.

Explicación de equals en http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=68&Itemid=188

Saludos

 

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".