How to load data through files in a java program?

0

This is my code for file management

package arbolBinario;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;


public class archivos {
     public archivos() {

    }

    public String LeeArchivo(String ruta) {
        File archivo = null;
        FileReader fr = null;
        BufferedReader br = null;
        String retorno = "";
        try {
            // Apertura del fichero y creacion de BufferedReader para poder
            // hacer una lectura comoda (disponer del metodo readLine()).
            archivo = new File(ruta);
            fr = new FileReader(archivo);
            br = new BufferedReader(fr);

            // Lectura del fichero
            String linea;
            while ((linea = br.readLine()) != null) {
               retorno = retorno+ linea +"\n";
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // En el finally cerramos el fichero, para asegurarnos
            // que se cierra tanto si todo va bien como si salta 
            // una excepcion.
            try {
                if (null != fr) {
                    fr.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
        return retorno;
    }

    public void EscribirArchivo(boolean anexar,String ruta, String texto) {
        FileWriter fichero = null;
        PrintWriter pw = null;
        try {
            fichero = new FileWriter(ruta,anexar);
            pw = new PrintWriter(fichero);
            pw.println(texto);

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                // Nuevamente aprovechamos el finally para 
                // asegurarnos que se cierra el fichero.
                if (null != fichero) {
                    fichero.close();
                }
            } catch (Exception e2) {
                e2.printStackTrace();
            }
        }
    }
}

Este es el codigo de mi arbol binario:

package arbolBinario;

import javax.swing.JOptionPane;

public class arbolBinario {

    public Nodo raiz;

    public arbolBinario() {
        raiz = null;
    }

    public boolean estaVacio() {

        return raiz == null;
    }

    public void insertar(int id, String nombre) {

        Nodo nuevo = new Nodo();
        nuevo.id = id;
        nuevo.nombre = nombre;

        if (raiz == null) {

            raiz = nuevo;

        } else {

            Nodo aux = raiz;
            Nodo padre;

            while (true) {

                padre = aux;

                if (id < aux.id) {

                    aux = aux.izquierdo;
                    if (aux == null) {
                        padre.izquierdo = nuevo;
                        break;
                    }
                } else {
                    aux = aux.derecho;

                    if (aux == null) {

                        padre.derecho = nuevo;
                        break;
                    }
                }
            }
        }
    }

    public Nodo buscar(int id) {

        Nodo aux = new Nodo();
        aux = raiz;

        while (aux.id != id) {

            if (id < aux.id) {

                aux = aux.izquierdo;
            } else {
                aux = aux.derecho;
            }

            if (aux == null) {
                JOptionPane.showMessageDialog(null, "Nodo no encontrado");
                return null;
            }
        }

        JOptionPane.showMessageDialog(null, "Nodo encontrado: " + "\nId: " + aux.id + "----> Nombre: " + aux.nombre);
        return aux;
    }

    public void eliminar(int id) {

        Nodo aux = raiz;
        Nodo padre = raiz;

        boolean izq = true;

        while (aux.id != id) {

            padre = aux;
            if (id < aux.id) {

                izq = true;
                aux = aux.izquierdo;
            } else {

                izq = false;
                aux = aux.derecho;
            }

            if (aux == null) {

                JOptionPane.showMessageDialog(null, "El nodo no existe");
            }
        }

        if (aux.izquierdo == null && aux.derecho == null) {

            if (aux == raiz) {

                raiz = null;
            } else if (izq) {

                padre.izquierdo = null;
            } else {

                padre.derecho = null;
            }
        } else if (aux.derecho == null) {

            if (aux == raiz) {

                raiz = aux.izquierdo;
            } else if (izq) {

                padre.izquierdo = aux.izquierdo;
            } else {

                padre.derecho = aux.izquierdo;
            }
        } else if (aux.izquierdo == null) {

            if (aux == raiz) {

                raiz = aux.derecho;
            } else if (izq) {

                padre.izquierdo = aux.derecho;
            } else {

                padre.derecho = aux.izquierdo;
            }
        } else {

            Nodo nodoReemplazo = obtenerReemplazo(aux);

            if (aux == raiz) {

                raiz = nodoReemplazo;
            } else if (izq) {

                padre.izquierdo = nodoReemplazo;
            } else {

                padre.derecho = nodoReemplazo;
            }

            nodoReemplazo.izquierdo = aux.izquierdo;
        }

        JOptionPane.showMessageDialog(null, "Nodo encontrado " + aux);
    }

    public Nodo obtenerReemplazo(Nodo nodoReem) {

        Nodo reemplazarPadre = nodoReem;
        Nodo reemplazo = nodoReem;
        Nodo aux = nodoReem.derecho;

        while (aux != null) {

            reemplazarPadre = reemplazo;
            reemplazo = aux;
            aux = aux.izquierdo;
        }

        if (reemplazo != nodoReem.derecho) {

            reemplazarPadre.izquierdo = reemplazo.derecho;

            reemplazo.derecho = nodoReem.derecho;
        }

        JOptionPane.showMessageDialog(null, "El nodo que reemplazara el anterior es " + reemplazo);

        return reemplazo;
    }

    public void imprimirInOrden(Nodo Raiz) {

        if (Raiz != null) {

            imprimirInOrden(Raiz.izquierdo);

            System.out.println(Raiz.id);

            imprimirInOrden(Raiz.derecho);
        }

    }

    public void imprimirPreOrden(Nodo Raiz) {

        if (Raiz != null) {

            System.out.println(Raiz.id);
            imprimirPreOrden(Raiz.izquierdo);
            imprimirPreOrden(Raiz.derecho);
        }

    }

    public void imprimirPostOrden(Nodo Raiz) {
        if (Raiz != null) {

            imprimirPostOrden(Raiz.izquierdo);
            imprimirPostOrden(Raiz.derecho);
            System.out.println(Raiz.id);
        }
    }
}

Este es el nodo de mi arbol binario:

package arbolBinario;

public class Nodo {

    public int id;
    public String nombre;
    public Nodo izquierdo;
    public Nodo derecho;

    public Nodo() {
        id = 0;
        nombre = "";
        izquierdo = null;
        derecho = null;
    }

    public Nodo(int id, String nombre) {
        this.id = id;
        this.nombre = nombre;
    }

}

Esto es lo que tengo en el main por el momento:

package arbolBinario;

import javax.swing.JOptionPane;

public class main {

    public static void main(String[] args) {
        archivos archivo = new archivos();
        arbolBinario arbol = new arbolBinario();

        String ruta = "C:\progra2\arbolLeer.txt";
        String texto = " ";
        String nombre = " ";
        int id = 0;

       JOptionPane.showMessageDialog(null, archivo.LeeArchivo(ruta));


    }
}

The content of my file is as follows:

1 - Carlos
2 - Alberto
3 - Ericka
4 - Maria
5 - Juana

I already tried what I have done so far, and it is working correctly, the problem is that I need to take the data present in the file and pass it to another file in the following format

Carlos, 1
Alberto, 2
Ericka, 3
Maria, 4
Juana, 5

but before that I need to load the data in the tree, my doubt is that it is done by taking the present data from a txt file. I hope you can help me.

    
asked by Carlos Alberto Morales Ruiz 04.08.2018 в 18:28
source

0 answers