PARTE 1:
PARTE 2:
Bueno aqui les dejo un ejemplo una solucion que le ofreci a un compañero del foro, creo que con este ejemplo se pueden dar una amplio panorama de como manipular archivos claro tiene limitado hasta un problema especifico ya que fue una respuesta personalizada pero en fin, si no es asi en la parte de hasta bajo les dejo un manual de como pueden ustedes hacer la manipulacion de ficheros espero les sirva saludos.La accion lee jala el fichero.dat que porcierto se encuentra en la carpeta del proyecto:La accion modificar nos despliega una tabla donde podemos modificar los campos, OJO DESPUES DE MODIFICARLOS TIENES QUE DESELECCIONAR EL CAMPO QUE EDITASTE DE LO CONTRARIO NO SE GUARDARA EL CAMBIO EN ESE CAMPO.y por ultimo el boton guardar lo que hace es generar un archivo llamado fichero.txt con loq eu contiene el arreglo bidimencional este tambien se guarda en la raiz del proyecto.
Este es el codigo y al final te añado la descarga del proyecto te comente linea por liena pero los 2 ultimos metodos ya me dio flojera la verdad xd espero qeu te sirva saludos.package apoyo;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class Main {
//creamos el frame
static JFrame frame = new JFrame();
//creamos unescritorio
static JDesktopPane esc = new JDesktopPane();
//creamos los botones leer modificar y guardar
static JButton b1 = new JButton("Leer");
static JButton b2 = new JButton("Modificar");
static JButton b3 = new JButton("Guardar");
//Creamos area de texto
static JTextArea area1 = new JTextArea();
static JScrollPane area = new JScrollPane(area1);
static String arrFinal[][];
public static void main(String[] args) {
//le asignamos tamaño y hubicacion al area
area.setBounds(10, 50, 360, 200);
//les asignamos tamaño y hubicacion a lso botones
b1.setBounds(10, 10, 100, 30);
b2.setBounds(140, 10, 100, 30);
b3.setBounds(270, 10, 100, 30);
//añadimos los botones y area al escritorio
esc.add(b1);
esc.add(b2);
esc.add(b3);
esc.add(area);
//le asignamos tamaño al frame
esc.setSize(400, 300);
//añidamos escritorio al frame
esc.setBackground(Color.LIGHT_GRAY);
frame.add(esc);
//le asignamos tamaño al frame
frame.setSize(400, 300);
//para al salir terminar proceso del frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//para que aparesca centrado el frame
frame.setLocationRelativeTo(null);
//para qeu sea visible el frame
frame.setVisible(true);
area1.setEditable(false);
//Accion del boton 1 LEER
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
leer();
}
});
//Accion del boton 2 MODIFICAR
b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
modificar();
}
});
//Accion del boton 3 GUARDAR
b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
guardar();
}
});
}
//de aqui comienzan los metodos que utiliza LEER
public static void leer(){
try{
//variable para leer linea por linea del documento
String cadena="";
//variable para concatenar la string final
String cadenafinal="";
//variable con nombre del archivo
String fichero="fichero.dat";
//variable para obtener el stream del fichero
FileInputStream mifichero = new FileInputStream(fichero);
//variable que permite leer el fichero
BufferedReader leer = new BufferedReader(new InputStreamReader(mifichero));
//ciclo para leer el fechero
do {
//readline lee cada lina del fichero
cadena = leer.readLine();
//se compara si la cadena que se lea del archivo no contiene nada se termina todo
if (cadena == null){
break;
//si no entonces concatenamos cadena
}else{
cadenafinal = cadenafinal + cadena + "\n";
}
} while ( true );
//metodo para llenar arreglo
getTabla(cadenafinal);
//cadenafinal toma el contenido del arreglo
cadenafinal = getArreglo();
//lo imprimimos en nuestra area de texto
area1.setText(cadenafinal);
}catch (Exception e){
JOptionPane.showMessageDialog(null,"Lamentablemente no esta registrado el alumno que busca \n Por favor verifique el nombre e intente de nuevo");
}
}
//metodo para coloar contenido de fichero.dat en un arreglo bidimencional
public static void getTabla(String cadena){
//arreglo simple que compara cuantos saltos de linea hay en el fichero.dat
String arrAlto[] = cadena.split(";\n");
//arreglo simple que compara cuantos campos hay en cada renglon del fichero.dat
String arrAncho[] = arrAlto[0].split(";");
//Declaracion de arreglo bidimencional
arrFinal = new String [arrAlto.length][arrAncho.length];
//ciclo para llenar arreglo bidimencional
for(int i=0;i<arrAlto.length;i++){
String arrTemp[] = arrAlto
.split(";");
for(int j=0; j<arrTemp.length;j++)
arrFinal[j] = arrTemp[j];
}
}
//metodo para pintar arreglo
public static String getArreglo(){
//vatiable que tomara lo que contiene el arreglo bidimencional
String ca = "";
//llenado de variable que contendra arreglo bidimencional
for(int i=0;i<arrFinal.length;i++){
for(int j=0; j<arrFinal[0].length;j++){
ca = ca + arrFinal[j]+ "\t";
}
ca = ca + "\n";
}
return ca;
}
//metodo modificar en arreglo bidimencional
public static void modificar(){
String arrTemp[] = new String[arrFinal[0].length];
for(int i=0;i<arrTemp.length;i++){
arrTemp="";
}
final JFrame frame2 = new JFrame("modificar fichero");
final JTable table1 = new JTable(arrFinal, arrTemp);
table1.setPreferredScrollableViewportSize(new Dimension(400,300));
JScrollPane scroll = new JScrollPane(table1);
JButton boton = new JButton("Salvar");
frame2.add(scroll, BorderLayout.CENTER);
frame2.add(boton, BorderLayout.SOUTH);
frame2.setSize(400,300);
frame2.setVisible(true);
frame2.setLocationRelativeTo(null);
boton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
for(int t=0;t<arrFinal.length;t++)
for(int j=0;j<arrFinal[0].length;j++)
arrFinal[t][j]=table1.getValueAt(t, j).toString();
area1.setText(getArreglo());
frame2.setVisible(false);
}
});
}
//metodo paara guardar el arreglo bidimencional como fichero.txt
public static void guardar(){
try{
String cadd="fichero.txt";
BufferedWriter out = new BufferedWriter(new FileWriter(cadd));
String cadenaescribir ="";
for(int t=0;t<arrFinal.length;t++){
for(int j=0;j<arrFinal[0].length;j++){
cadenaescribir = cadenaescribir + arrFinal[t][j]+";";
}
cadenaescribir = cadenaescribir + "\r\n";
}
out.write(cadenaescribir);
out.close();
JOptionPane.showMessageDialog(null, "El fichero.txt se creo correctamente!!");
}catch(IOException e){
System.out.println("ERROR AL TRATAR DE CRAR FICHERO.TXT");
}
}
}
DESCARGA EL CODIGO:
No está autorizado para ver los enlaces.
Registrate o Ingresa
MANUAL DE FICHEROS:
No está autorizado para ver los enlaces.
Registrate o Ingresa