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