Java - Escribir y Leer en un fichero de texto

 
Vista:
Imágen de perfil de Francisco
Val: 85
Ha aumentado su posición en 2 puestos en Java (en relación al último mes)
Gráfica de Java

Escribir y Leer en un fichero de texto

Publicado por Francisco (56 intervenciones) el 28/08/2018 21:14:46
Hola, les mando el siguiente código: Tengo que mandar una lista de tipo String con el nombre del archivo y tengo que escribir las lineas del archivo usando el BufferedWriter y también tengo que leer (mostrar en pantalla el contenido del archivo) con el BufferedReader. Yo ya probé desde el main llamando al método escribir, y me lanza una excepción. Me debería mostrar el fichero de texto con lo que escribí. Pero no lo hace, pienso que estoy fallando en el código del método escribir. Anteriormente, les mandé un programa en el que había hecho todo. Ayúdenme, por favor. Por lo menos, denme una idea de qué debería mejorar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package archivocorregido;
 
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
 
public class ManejadorArchivo {
 
    public ManejadorArchivo(){
 
        String nombre;
        List<String>documento;
        nombre = "archivo.txt";
        documento = new ArrayList<>();
        documento.add("hola, que tal?");
        documento.add("me llamo ramiro galvez");
        documento.add("me gustan las ciencias de la tierra");
        documento.add("en mis ratos libres salgo a pasear a mi perro");
    }
 
 
    public void escribir(String nombre,List<String>lineasDeArchivo) throws IOException,Exception{
 
        File archivo = null;
        FileWriter ficheroEntrada = null;
        BufferedWriter br = null;
 
        try{
            archivo = new File(nombre);
            ficheroEntrada = new FileWriter(archivo);
            br = new BufferedWriter(ficheroEntrada);
 
            for(String linea:lineasDeArchivo){
                br.write(linea);
                br.newLine();
            }
            br.write("esto es interesante");
            br.newLine();
            br.write("Tengo un cansancio tremendo");
            br.newLine();
            br.write("pero me tengo que despabilar");
 
           br.flush();
 
            br.close();
        }catch(Exception e){
            System.out.println("problemas al escribir el archivo " + e);
        }finally{
            try{
                if(ficheroEntrada != null){
                    ficheroEntrada.close();
                }
            }catch(Exception e){
                System.out.println(e);
            }
        }
 
    }
 
 
}



Observación: pienso que no estoy conectando la lista al buffer.
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

Escribir y Leer en un fichero de texto

Publicado por Javier (12 intervenciones) el 30/08/2018 12:36:55
Hola,
aunque tu clase no utilizas las convenciones y no estás haciendo las cosas de la mejor manera, he dejado tu código y he modificado lo justo para que veas donde estás fallando.

Este código funciona 100%. (aunque no está bien implementado)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
public class ManejadorArchivo {
 
	public static String nombre;
    public static List<String>documento;
 
	public static void main(String args[]) {
		ManejadorArchivo m = new ManejadorArchivo();
 
		try {
			m.escribir(nombre, documento);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
 
	}
 
    public ManejadorArchivo(){
 
 
        this.nombre = "D:\\archivo.txt";
        this.documento = new ArrayList<>();
        this.documento.add("hola, que tal?");
        this.documento.add("me llamo ramiro galvez");
        this.documento.add("me gustan las ciencias de la tierra");
        this.documento.add("en mis ratos libres salgo a pasear a mi perro");
    }
 
 
    public void escribir(String nombre, List<String>lineasDeArchivo) throws IOException,Exception{
 
        File archivo = null;
        FileWriter ficheroEntrada = null;
        BufferedWriter br = null;
 
        try{
            archivo = new File(nombre);
            ficheroEntrada = new FileWriter(archivo);
            br = new BufferedWriter(ficheroEntrada);
 
            for(String linea:lineasDeArchivo){
                br.write(linea);
                br.newLine();
            }
            br.write("esto es interesante");
            br.newLine();
            br.write("Tengo un cansancio tremendo");
            br.newLine();
            br.write("pero me tengo que despabilar");
 
           br.flush();
 
            br.close();
 
            System.out.println("fin");
 
        }catch(Exception e){
            System.out.println("problemas al escribir el archivo " + e);
            e.printStackTrace();
        }finally{
            try{
                if(ficheroEntrada != null){
                    ficheroEntrada.close();
                }
            }catch(Exception e){
                System.out.println(e);
            }
        }
 
    }
 
 
}
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