elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  agregar string a fichero existente
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: agregar string a fichero existente  (Leído 5,987 veces)
omar_cdg

Desconectado Desconectado

Mensajes: 47



Ver Perfil
agregar string a fichero existente
« en: 30 Julio 2015, 16:57 pm »

Hola, soy nuevo en el foro. Estoy haciendo un pequeño editor de texto.

Tengo el siguiente codigo que "agrega" texto al fichero que se eligio y se abrio. El problema es que me agrega todo el texto existente + el nuevo texto tipeado en el jtextArea. agradeceria la ayuda-.....

Código
  1. public void guardarArchivo(){
  2. try{
  3. FileWriter fichero=new FileWriter(path,true);
  4. BufferedWriter buff=new BufferedWriter(fichero);
  5.  
  6. buff.write( Que deberia agregar aqui?? ya que me pide un string);
  7.  
  8. buff.close();
  9. }
  10. catch(IOException e){
  11. e.getMessage();
  12. }
  13. }


« Última modificación: 30 Julio 2015, 19:58 pm por engel lex » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: agregar string a fichero existente
« Respuesta #1 en: 30 Julio 2015, 18:57 pm »

Primero, si vas a publicar código, utiliza las etiquetas GeSHi.

Segundo, puedes explicar bien tu problema y lo que quieres hacer porque no entiendo muy bien.

No me queda claro si lo que quieres es hacerle Append al fichero o al jtextArea, o si no quieres hacerle Append.

Date cuenta que uno de los constructores para la clase FileWriter tiene la siguiente signatura:

Código
  1. FileWriter(String fileName, boolean append)

Nota: Supongo que estás usando ese, deduzco que la variable path es un String.

Si le pasas el boolean append como true, el va a abrir el fichero, y va a agregar el nuevo contenido, si es false, crearía un nuevo fichero (si tiene permisos).

Mira esto: http://www.tutorialspoint.com/java/java_filewriter_class.htm

Ahora, en cuanto al BufferedWriter. El método write() tiene esta signatura:

Código
  1. void write(String s, int off, int len)

Lo que hace es escribir una porción del string s, utilizando la variable int off (offset) (posición a partir de la cual copiar), y la variable int len (cantidad de caracteres a copiar)

Mira esto: http://www.tutorialspoint.com/java/io/java_io_bufferedwriter.htm

Espero haberte podido guiar en algo.

Salu2s

PD: No me manejo del todo con Java


« Última modificación: 30 Julio 2015, 18:59 pm por DarK_FirefoX » En línea

omar_cdg

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Re: agregar string a fichero existente
« Respuesta #2 en: 30 Julio 2015, 19:34 pm »

Por alguna razón append no me está funcionando. Path el archivo elegido para agregar texto.  Un archivo existente.  Loqque intento hacer es append al jtexarea. Gracias por la ayuda
En línea

Usuario Invitado


Desconectado Desconectado

Mensajes: 625



Ver Perfil
Re: agregar string a fichero existente
« Respuesta #3 en: 30 Julio 2015, 19:49 pm »

¿Podrías explicarte correctamente? ¿Qué tratas hacer y por qué, para obtener qué resultado? Porque no se te entiende absolutamente nada.

Si quieres guardar cambios, solo debes hacer:

Código
  1. btnSave.addActionListener(new ActionListener() {
  2.    @Override
  3.    public void actionPerformed(ActionEvent e) {
  4.        JPanel panel = (JPanel) tabs.getSelectedComponent();
  5.        // 0 -> asume que el JTextArea es el unico hijo del JPanel
  6.        JTextArea area = (JTextArea) panel.getComponent(0);
  7.        String text = area.getText();
  8.        try {
  9.            Path path = Paths.get("ruta/a/tu/archivo");
  10.            Files.write(path, text.getBytes("utf-8"));
  11.        } catch(IOException e) {
  12.            throw new RuntimeException("Ocurrió un error al guardar los cambios", e);
  13.        }
  14.    }
  15. });

PD: Importar Path, Paths y Files del paquete java.nio.file.
En línea

"La vida es muy peligrosa. No por las personas que hacen el mal, si no por las que se sientan a ver lo que pasa." Albert Einstein
DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: agregar string a fichero existente
« Respuesta #4 en: 30 Julio 2015, 20:28 pm »

Segundo, puedes explicar bien tu problema y lo que quieres hacer porque no entiendo muy bien.

A veces pienso que las personas no leen!  :silbar:

Ya ni se si tu quieres escribir desde un fichero al JTextArea o al revés.

De nuevo:

Citar
¿Podrías explicarte correctamente? ¿Qué tratas hacer y por qué, para obtener qué resultado? Porque no se te entiende absolutamente nada.
En línea

omar_cdg

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Re: agregar string a fichero existente
« Respuesta #5 en: 30 Julio 2015, 21:50 pm »

Hola sí, t voy a explicar con detalle lo que estoy haciendo ya que te esfuerzas en ayudarme y lo agradezco mucho. la variable path que utilizo en el codigo es la ruta del archivo(existente en el disco duro),que se abre con jfilechooser.
A ese archivo que he elegido, yo lo quiero modificar y agregar texto, me explico?

  public String abrirArchivo(){
        String aux="";
        String texto="";
        try{
            JFileChooser archivo = new JFileChooser();
            archivo.showOpenDialog(gui);
            //abre el archivo seleccionado
            File abrirSeleccion=archivo.getSelectedFile();
            try{
            path=abrirSeleccion.getAbsolutePath();
            }catch(NullPointerException e){
                e.getMessage();
            }
            //leemos el archivo, plasmarlo en el jtextarea
            if(abrirSeleccion!=null){
                FileReader leer=new FileReader(abrirSeleccion);
                BufferedReader buff=new BufferedReader(leer);
                while((aux=buff.readLine())!=null){
                    texto+=aux+"\n";
                }
                buff.close();
            }

aqui lo tienes, luego en el metodo guardar archivo, lo unico que quiero es guardar los cambios, pero por alguna razon, me guarda todo lo existenete mas los cambios que he hecho.
por ejemplo. en el editor le doy abrir y me muestra las carpetas del sistema. elijo, agenda.txt(que ya contioene texto). agrego lineas y le doy guardar. y en vez de agregarme las lineas nuevas solamente me agrega todo lo que ya existe + las lineas nuevas. Resultado: el texto que estaba se duplica y en el final del jtextarea aparece la nueva linea

public void guardarArchivo(){

        try{
            FileWriter fichero=new FileWriter(path,true);
            BufferedWriter buff=new BufferedWriter(fichero);
            buff.write();
            buff.close();
        }
        catch(IOException e){
            e.getMessage();
        }
    }
En línea

omar_cdg

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Re: agregar string a fichero existente
« Respuesta #6 en: 30 Julio 2015, 21:52 pm »

Gracias gus, voy a probarlo
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: agregar string a fichero existente
« Respuesta #7 en: 31 Julio 2015, 01:27 am »

Primero, si vas a publicar código, utiliza las etiquetas GeSHi.

- No hagas doble post.



Si le pasas el boolean append como true, el va a abrir el fichero, y va a agregar el nuevo contenido, si es false, crearía un nuevo fichero (si tiene permisos).

Ya te había dicho ^^ (quizás no quedo del todo claro)

Pues ahí está el problema, pues al estar append en true, el va a agregarle lo que le pases al FileWriter al fichero. Y como lo que hiciste fue abrir el archivo y tienes todo el contenido en el JTextArea, pues el va a agregar todo eso (detrás de lo que ya tenia), por lo tanto, en el constructor del FileWriter debes hacer esto:

Código
  1. FileWriter fichero=new FileWriter(path, false);

Para que el cree el fichero con el contenido del JTextArea.

Dinos como te fue.

Salu2s
En línea

omar_cdg

Desconectado Desconectado

Mensajes: 47



Ver Perfil
Re: agregar string a fichero existente
« Respuesta #8 en: 31 Julio 2015, 02:08 am »

SSSiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ssssiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!!! gracias dark muchisimas gracias. Creia que funcionaba al reves por eso ni probaba. Bueno, funcion{o de mil maravillas. A continuar con el editor. Gracias de nuevo.
Ah! ya averigue lo de GeShi, pido disculpas, soy nuevo en el foro y no sabia bien que era eso.
lo que no entendi es lo de no hacer doble post

Este es mi editor

« Última modificación: 31 Julio 2015, 02:16 am por omar_cdg » En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: agregar string a fichero existente
« Respuesta #9 en: 31 Julio 2015, 02:18 am »

SSSiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii ssssiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii!!!! gracias dark muchisimas gracias. Creia que funcionaba al reves por eso ni probaba. Bueno, funcion{o de mil maravillas. A continuar con el editor. Gracias de nuevo.
Ah! ya averigue lo de GeShi, pido disculpas, soy nuevo en el foro y no sabia bien que era eso.
lo que no entendi es lo de no hacer doble post

De nada!

Lo que del doble post es que publicaste dos respuestas seguidas!  ;)

Ya que eres nuevo, te recomiendo que te pases por aquí y le eches una lectura:

foro.elhacker.net/reglas.htm

Salu2s
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Aun sigo sin poder agregar un Fichero .Reg al Registro...
Programación Visual Basic
Pitoniso 3 1,411 Último mensaje 23 Noviembre 2006, 22:04 pm
por CeLaYa
agregar string array a JList
Java
brian_e 2 11,402 Último mensaje 22 Abril 2009, 17:46 pm
por brian_e
En C: Problema al leer String e int desde fichero
Programación C/C++
vivianiita13 0 1,650 Último mensaje 27 Abril 2015, 14:07 pm
por vivianiita13
append , . a un string existente
Programación C/C++
bash 1 2,140 Último mensaje 12 Junio 2015, 04:29 am
por rir3760
Añadir un string al final de un fichero en C++
Programación C/C++
seryioo 3 2,478 Último mensaje 22 Febrero 2016, 20:54 pm
por Orubatosu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines