13/05/2014, 12:27
|
| | Fecha de Ingreso: octubre-2009
Mensajes: 84
Antigüedad: 15 años, 3 meses Puntos: 0 | |
Respuesta: Editar y imprimir archivo RTF Bueno me auto respondo, aca la solucion capas alguno le sirve:
Código:
public void imprimirRemito() {
File remito = null;
FileReader fr = null;
try {
remito = new File("remitos.rtf");
fr = new FileReader(remito);
StringBuilder out = new StringBuilder();
int longitud = (int) remito.length();
char[] buffer = new char[longitud];
fr.read(buffer, 0, longitud);
StringBuilder builder = out.append(buffer, 0, longitud);
UtilidadesArchivo.replaceAll(builder, "#fecha#", "2014-05-02"); //Remplazar etiqueta
UtilidadesArchivo.copiarArchivo(builder, "remitos_tmp.rtf"); //Crear archivo apartir de un StringBuilder
} catch (IOException e) {
} finally {
try {
if (null != fr) {
fr.close();
}
} catch (IOException e2) {
}
}
}
Código:
public static void replaceAll(StringBuilder builder, String cadena, String remplazo) {
int index = builder.indexOf(cadena);
while (index != -1) {
builder.replace(index, index + cadena.length(), remplazo);
index += remplazo.length(); // Move to the end of the replacement
index = builder.indexOf(cadena, index);
}
}
Código:
public static void copiarArchivo(StringBuilder builder, String rutaDestino) {
try {
File archivoDestino = new File(rutaDestino);
FileOutputStream out;
try (ByteArrayInputStream in = new ByteArrayInputStream(builder.toString().getBytes())) {
out = new FileOutputStream(archivoDestino);
byte[] buffer = new byte[8192];
int len;
while ((len = in.read(buffer)) > 0) {
out.write(buffer, 0, len);
}
}
out.close();
} catch (IOException e) {
System.err.println("Hubo un error de entrada/salida!!!");
}
}
Lo que hace es remplazar la cadena y luego crear un archivo apartir de un StringBuilder
Saludos! |