Código PHP:
//Botones de iteracción con el usuario
btnGuardar = new JButton("Guardar");
btnGuardar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
EscribeFichero.main(null);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnGuardar.setBounds(10, 87, 91, 23);
getContentPane().add(btnGuardar);
btnConectar = new JButton("Conectar");
btnConectar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
objConex.conectar();
//Compruebo si la conexión esta activa
if (!ConexionDB.getConex().isClosed()){
MenuGUI.EstadoConx.setText("¡Conectado!");
MenuGUI.EstadoConx.setForeground(Color.GREEN);
}else{
MenuGUI.EstadoConx.setText("Error al conectar");
}
} catch (SQLException e1) {
JOptionPane.showInputDialog(e1, "No se pudo establecer conexión");
}
}
});
btnConectar.setBounds(10, 137, 91, 23);
getContentPane().add(btnConectar);
btnReset = new JButton("Resetear Datos");
btnReset.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
btnReset.setBounds(111, 137, 128, 23);
getContentPane().add(btnReset);
btnSalir = new JButton("Salir");
btnSalir.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Cierro la ventana limpiando el objeto en la memoria
dispose();
}
});
btnSalir.setBounds(287, 137, 91, 23);
getContentPane().add(btnSalir);
}
public void windowActivated(WindowEvent e){
setEnabled(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AñadirConexion frame = new AñadirConexion();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}
Código PHP:
import java.io.*;
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();
}
@SuppressWarnings("resource")
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");
System.out.println(fichero);
PrintWriter pw = new PrintWriter(fichero);
FileWriter fw = null;
//Compruebo si el fichero en cuestión existe
if (!fichero.exists()){
try{
//Instancio la escritura del archivo en cuestión y le imprimo en su interior las variables
new FileWriter(fichero);
pw.println(alias+":"+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 = null;
//Comparo que el String al tener la ruta del archivo entre en el bucle para empezar su lectura linea a linea
while ((linea = br.readLine()) != null){
contenido.append(linea); //Añado el contenido de linea (contenido del archivo) al String "contenido"
System.out.println("Dentro del bucle");
}
System.out.println("Fuera 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+":"+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(fichero));
try {
output.write(contenido.toString());
}finally {
output.close();
}
}catch (Exception ex){
System.out.println(ex);
br.close();
}
}catch (IOException ex){
ex.printStackTrace();
}
}
}
public static void main(String[] args) throws IOException{
new EscribeFichero();
}
}
Luego compruebo que el archivo en cuestión donde voy guardar tales datos exista y procedo a su guardado en tal archivo.
BIEN, hasta ahí todo funciona correctamente, el problema me viene en esta parte del código:
Código PHP:
//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 = null;
//Comparo que el String al tener la ruta del archivo entre en el bucle para empezar su lectura linea a linea
while ((linea = br.readLine()) != null){
contenido.append(linea); //Añado el contenido de linea (contenido del archivo) al String "contenido"
System.out.println("Dentro del bucle");
}
System.out.println("Fuera 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+":"+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(fichero));
try {
output.write(contenido.toString());
}finally {
output.close();
}
}catch (Exception ex){
System.out.println(ex);
br.close();
}
}catch (IOException ex){
ex.printStackTrace();
}
}
¿Como puedo solucionarlo?