post icon

Leer, Guardar, Eliminar Ficheros de texto con Java

Con Java, operar archivos de texto es muy sencillo, disponemos ya en el JDK las librerías necesarias para hacerlo. En este caso trabajaremos con un fichero llamado “dbxconnections.ini” que al fin y al cabo es un simple conjunto de texto plano, con la extension típica .txt cambiada. En muchas implementaciones este fichero se utiliza para almacenar parametros de conexiones a bases de datos, aunque no recomiendo normalmente ese uso. Aunque el ejemplo se base en eso no significa que no podamos hacer modificaciones menores para que almacene o lea otro tipo de contenido y formato.

También la clase incluirá un método para eliminar ficheros previamente almacenados, que obviamente puede ser aplicado a cualquier tipo y no solamente a ficheros de texto.

El contenido final del fichero mencionado sería el siguiente:

[DB]

Database = 127.0.0.1:DB
UserName = SYSDBA
Password = ÄËÕÌÔÌÒÓ¢y??

Contiene un encabezado de identificación, una dirección de servidor y nombre de BD, usuario y password que fue encriptado previamente con otra clase con S-DES, pero no es el objetivo de este post, en otra entrada comentaremos sobre esto.

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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package comunes;
 
import java.io.*;
 
/**
 *
 * @author GeekZero
 */
public class Archivos {
 
	public void Guardar(String pUrl, String pUser, String pPass)
			throws Exception {
		// instancio objetos de escritura
		FileWriter fichero = null;
		PrintWriter pw = null;
		try {
			// asigno nombre de fichero, mantengo la nomenclatura
			fichero = new FileWriter("dbxconnections.ini");
			// asigno PrintWriter a fichero
			pw = new PrintWriter(fichero);
 
			// escribo los parametros
			pw.println("[DB]");
			pw.println("Database = " + pUrl);
			pw.println("UserName = " + pUser);
			pw.println("Password = " + pPass);
 
			// vuelco la memoria al disco duro
			pw.flush();
		} catch (Exception e) {
			throw new Exception(e);
		} finally {
			// cierro los canales de escritura
			fichero.close();
			pw.close();
		}// end try
	}// end Guardar
 
	public String[] Leer() throws Exception {
		// Array a retornar
		String parametros[] = new String[4];
		// instancio objetos de lectura
		File archivo = null;
		FileReader fr = null;
		BufferedReader br = null;
		try {
			// Apertura del fichero y creacion de BufferedReader para poder
			// hacer una lectura comoda (disponer del metodo readLine()).
			archivo = new File("dbxconnections.ini");
			fr = new FileReader(archivo);
			br = new BufferedReader(fr);
 
			// Lectura del fichero
			String linea;
			// indice para el array
			int i = 0;
			while ((linea = br.readLine()) != null) {
				/*
				 * si no es el encabezado corto el tag y solo cargo cargo el
				 * valor despues del = sin los espacios
				 */
				if (i > 0) {
					linea = linea.substring(10).toString().trim();
				} // end fi
				// System.out.println(linea);
				parametros[i] = linea;
				i++;
			}// end while
		} catch (FileNotFoundException e) {
			throw new Exception("No existe el fichero [dbxconnections.ini] \n"
					+ e);
		} catch (Exception e) {
			throw new Exception(e);
		} finally {
			// En el finally cerramos el fichero, para asegurarnos
			// que se cierra tanto si todo va bien como si salta
			// una excepcion.
			try {
				if (null != fr)
					fr.close();
			} catch (Exception e2) {
				throw new Exception(e2);
			}// end try
		}// end try
		return parametros;
	}// end Guardar
 
	public static void Eliminar(String pArchivo) throws Exception {
		try {
			File fichero = new File(pArchivo);
			if (!fichero.delete())
				throw new Exception("El fichero " + pArchivo
						+ " no puede ser borrado!");
		} catch (Exception e) {
			throw new Exception(e);
		} // end try
	} // end Eliminar
 
}// end class
7 diciembre 2009

Comentarios desde Facebook:

  1. avatar
    Vivian PARAGUAY Mozilla Firefox Windows
    6 abril 2013 at 12:24 #

    Tranca?

  2. avatar
    Orland PARAGUAY Mozilla Firefox Windows
    1 noviembre 2010 at 10:18 #

    Muy bueno el aporte.Gracias ;)

Responder