Buenas noches compañeros, estoy intentando añadir mas datos a un archivo ya existente. Os pongo el código y os explico:
Justo en ese bucle, en el que uso para hacer la lectura del archivo, no entra...¿alguna idea de porque, esta bien escrito por lo menos?
He estado mirando ese bucle y, el problema que me da es que linea es null, por lo tanto no entra, pero he estado mirando las rutas del archivo en cuestión y estan correctas, por el simple hecho que hace la escritura, y comprueba que el archivo existe, pero no hace la lectura y no se porque...
¿Alguna idea?
Código (java) [Seleccionar]
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import javax.swing.JOptionPane;
public class EscribeFichero {
static String usuario, host, puerto, nombrebd, alias, clave;
//static String clave = new String(AñadirConexion.passwordField.getPassword());
public EscribeFichero() throws IOException {
initComponents();
}
private void initComponents() throws IOException {
//Sacar la clave desde el JPasswordField
clave = new String(AñadirConexion.passwordField.getPassword());
//Recojo el texto introducido en las cajas de texto
usuario=AñadirConexion.UsuarioField.getText();
host=AñadirConexion.HostField.getText();
puerto=AñadirConexion.PuertoField.getText();
nombrebd=AñadirConexion.BDField.getText();
alias=AñadirConexion.AliasField.getText();
//Declaro e inicio el prodecimiento lectura/escritura del archivo en cuestión
File fichero = new File ("C:\\prueba.txt");
FileWriter fw = null;
PrintWriter pw = new PrintWriter(fichero);
if (!fichero.exists()){
try{
new FileWriter("C:\\prueba.txt");
pw.println(alias);
pw.println(usuario+":"+clave+":"+host+":"+puerto+":"+nombrebd);
JOptionPane.showMessageDialog(null, "Guardado correctamente");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
//Nuevamente aprovechamos el finally para asegurarnos que se cierra el fichero.
if (null != fichero)
fw.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}else{
//Busca todo el contenido entero de un texto y lo regresa en un String.
StringBuilder contenido = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(fichero));
try {
String linea;
while ((linea = br.readLine()) != null){
contenido.append(linea);
System.out.println("Dentro del bucle");
}
if (null !=br){
br.close();
}
System.out.println(contenido);
//Añado el contendo recogidos de los JTextField al StringBuilder "contenido"
String field = alias+"\n"+usuario+":"+clave+":"+host+":"+puerto+":"+nombrebd;
contenido.append(field);
System.out.println(contenido);
//Cambia el contenido de un archivo de texto en su totalidad.. sobreescribiendo el texto existente
BufferedWriter output = new BufferedWriter(new FileWriter("C:\\prueba.txt"));
try {
output.write(contenido.toString());
}finally {
output.close();
}
}finally {
br.close();
}
}catch (IOException ex){
ex.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException{
new EscribeFichero();
}
}
Justo en ese bucle, en el que uso para hacer la lectura del archivo, no entra...¿alguna idea de porque, esta bien escrito por lo menos?
He estado mirando ese bucle y, el problema que me da es que linea es null, por lo tanto no entra, pero he estado mirando las rutas del archivo en cuestión y estan correctas, por el simple hecho que hace la escritura, y comprueba que el archivo existe, pero no hace la lectura y no se porque...
¿Alguna idea?