Clases de Utilidad Java IV: Files

Cuantas veces nos ha pasado que hemos tenido que leer fichero en Java y siempre nos surge la misma duda: FileInputStream, BufferedReader y empiezan a marearnos los “bufer” por la cabeza. Pues hoy vamos a implementar una serie de métodos de esos de copy-paste para sucesivas ocasiones J, con dos métodos muy sencillos para grabar un string en archivo o para leer un string de un archivo.

Leer un archivo de texto y pasarlo a un String

/**

* Lee todo un fichero de texto y lo mete en un String.

*

* @param fichero

* La ruta absoluta que indica dónde se encuentra el fichero.

* @param encoding

* La codificación del fichero.

*

* @return El string con el contenido de todo el fichero.

*

* @throws Exception

* La excepción exception.

*/

public static String file2String( File fichero , String encoding ) throws Exception {

StringBuilder result = new StringBuilder ();

FileInputStream inputStream;

BufferedReader inputReader;

try{

inputStream = new FileInputStream(fichero);

inputReader = new BufferedReader( new InputStreamReader(inputStream, encoding));

String currentLine = null;

result = new StringBuilder("");

// Lee el fichero linea por linea

while (inputReader.ready()) {

currentLine = inputReader.readLine();

//sSalida += currentLine + "\n";

result.append(currentLine).append(System.getProperty("line.separator"));

}

inputReader.close();

inputStream.close();

} catch (FileNotFoundException e) {

log.error("Fichero no encontrado " + fichero , e);

throw new Exception (e);

} catch (IOException e) {

log.error("Error en entrada/salida " , e);

throw new Exception (e);

} catch (NullPointerException e) {

log.error("Objeto nulo " , e);

throw new Exception (e);

}

return result.toString();

}

Volcar el contenido de un String a un archivo de texto:

/**

* Almacena en el fichero indicado, el texto que se pasa por parámetro, añadiendolo al final

* del contenido del fichero si append fuera true y machacando el contenido del fichero si fuera

* false.

*

* @param text

* El texto que se pretende almacenar.

* @param file

* La ruta absoluta que indica donde se encuetra el fichero a tratar.

* @param encoding

* La codificación del fichero.

* @param append

* Parámetro que indica si almacenar añadiendo o machacando el contenido.

*

* @throws Exception

* La excepción exception.

*/

public static void stringToFile(String text, File file, String encoding, boolean append) throws Exception {

OutputStream stream = null;

Writer writer = null;

try {

if (encoding == null) {

writer = new FileWriter(file.getAbsolutePath(), append);

} else {

stream = new FileOutputStream(file.getAbsolutePath(), append);

writer = new OutputStreamWriter(stream, encoding);

}

writer.write(text);

writer.close();

} catch (IOException e) {

log.error("Error en entrada/salida " , e);

throw new Exception (e);

} catch (RuntimeException ex) {

log.error("Error RuntimeException en entrada/salida " , ex);

throw new Exception (ex);

}

}

Deja un comentario