¡Hola a todos!
Acabo de crear una clase simple para escribir/sobre-escribir en archivos de texto, usando Java.Nio.
Aquí el código:
package nfile;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.WritableByteChannel;
import java.nio.charset.CharacterCodingException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
public class NFileWriter {
private CharsetEncoder encoder;
private WritableByteChannel out;
private StringBuilder text;
encoder = Charset.forName("UTF-8").newEncoder();
try {
e.printStackTrace();
}
}
public void write
(String str
) { text.append(str);
}
public void newLine() {
text.append("\n");
}
public void flush() {
try {
out.write(parseByte(text.toString()));
e.printStackTrace();
}
}
public void close() {
out = null;
try {
out.close();
e.printStackTrace();
}
}
private ByteBuffer parseByte
(String str
) { ByteBuffer buf = null;
try {
buf = encoder.encode(CharBuffer.wrap(str));
} catch (CharacterCodingException e) {
e.printStackTrace();
}
return buf;
}
}
Explicación de cada función:
- Primero creas el constructor, con dos parámetros, un string indicando donde está el archivo que quieres editar, y un booleano, si indicas true se escribirá a partir del que están, sin borrar nada, pero si indicas false, se sobre-escribirá, como si se borrase todo y se pusiese lo escrito.
- Con el write puedes añadir texto a un 'buffer'.
- Con el newLine puedes añadir una nueva línea para escribir en ella.
- Con el flush se liberará todo lo que está en el 'buffer' y se escribirá, todo lo que hay en write se almacena en una variable, y con flush todo lo sueltas para enviarlo al archivo.
- El close para cerrar el canal cuando dejes de gestionar con él.
Ejemplo en código:
NFileWriter out = new NFileWriter("lol.txt", true);
out.write("lol");
out.newLine();
out.flush();
out.close();
En el archivo lol.txt pondrá lo que antes, pero con un 'lol' añadido, si el archivo no existido se crea, y lógicamente con el texto 'lol'.
Cualquier duda comenten.
(
créditos hacia mí por hacer la clase)