style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Ayudaaa

Necesito obtener datos desde un fichero txt porfavor ayuda!!!

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

estoy trabajando con netbeans

estoy trabajando con netbeans

Y en que necesitas ayuda. Ya

Y en que necesitas ayuda. Ya dijiste lo que quieres, pero no como ayudarte.

manejo de ficheros txt con interfaz grafica

estamos creando un proyecto con el cual debemos simula una cuenta corriente donde se ingresa codigo nombre apellido y saldo
toda esta informacion se guarda en un archivo txt asta ahi todo bien, ahora mi problema es: no comprendo como rescatar ciertos datos del archivo txt, ejemplo: debo mostrar solo datos que contengar saldos negativo o solo datos que contegan saldos positivos.
pensabamos que debiamos guardar cada linea de datos en un arreglo distinto, y asi poder manejar los datos a nuestra antojo pero no sabemos como implementar nuestra idea

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
//ver registros
try{
FileReader fr = new FileReader("clientes.txt");
BufferedReader bf = new BufferedReader(fr);
String linea;
String linea2="";
while ((linea = bf.readLine())!=null)
linea2+=linea+"\n";
jTextArea1.setText(linea2);

}catch (Exception mia){
JOptionPane.showMessageDialog(null, mia);
}

// object to be written to file
}
logramos aser esto pero nos muestra todos los archivo que existen en el fichero

ojala puedas ayurdarme a que pueda rescatar datos pero cumpliendo las restricciones (<0 o >0)

Imagen de neko069

Ah chin.... con qué separas

Ah chin.... con qué separas tus datos en cada línea? es decir, separas con comas, pipes, o algo así ?
Porque bien podrías tomar cada renglon, partirlo, ya sea con el método split() de la clase String o bien usando la clase StringTokenizer....
Bueno, suponiendo que haces eso, sabes entonces que (por ejemplo usando split()) obtienenes un arreglo unidimensional de objetos String, entooooonces, pues nada mas ubicas la(s) posición(es) de el(los) objetos a comparar, los comparas y pues.... me imagino que vas a ejecutar algo con el resultado de ésa comparación...y,y,y..... y ya...

¿?mmm

la verdad esque no tengo nigun separador, me prodrias ayudar a implementarlo en mi codigo?

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
// TODO add your handling code here:
//borrar
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextArea1.setText("");
}//GEN-LAST:event_jButton2ActionPerformed

private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
// TODO add your handling code here:
//ver registros
try{
FileReader fr = new FileReader("clientes.txt");
BufferedReader bf = new BufferedReader(fr);
String linea;
String linea2="";
while ((linea = bf.readLine())!=null)
linea2+=linea+"\n";
jTextArea1.setText(linea2);

}catch (Exception mia){
JOptionPane.showMessageDialog(null, mia);
}

// object to be written to file
}//GEN-LAST:event_jButton3ActionPerformed

private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
try {
output = new Formatter( "clientes.txt" );
jPanel5.setVisible(true);
} // end try
catch ( SecurityException securityException ) {
System.err.println(
"Usted no tiene acceso de escritura a este archivo." );
System.exit( 1 );
} // end catch
catch ( FileNotFoundException filesNotFoundException ) {
System.err.println( "Error al crear el archivo." );
System.exit( 1 );
} // end catch
// end method openFile
}//GEN-LAST:event_jButton4ActionPerformed

private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
// TODO add your handling code here:
if ( output != null )
output.close();
jPanel3.setVisible(false);
jPanel2.setVisible(true);
jPanel4.setVisible(true);
}//GEN-LAST:event_jButton5ActionPerformed

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
boolean exception=false, exception1=false, exception2=false, exception3=false;

try {

FileWriter texto= new FileWriter("clientes.txt", true);
entrada=jTextField1.getText().trim();
codigo = Integer.valueOf(entrada);
exception= record.Account(codigo);
if(exception==true){
throw new exceptionAccount();
}
nombre=jTextField2.getText().trim();
exception1= record.firstName(nombre);
if(exception1==true){
throw new exceptionfirstName();
}
apellido =jTextField3.getText().trim();
exception2= record.firstName(apellido);
if(exception2==true){
throw new exceptionlastName();
}
texto.write(codigo+" ");
texto.write(nombre+" ");
texto.write(apellido+" ");

texto.close();
} catch(NumberFormatException ex){
jTextField1.selectAll();
jTextField1.requestFocus();
JOptionPane.showMessageDialog(null,"Codigo Invalido, esta en Blanco o tiene letras","Error en ingreso de codigo",JOptionPane.ERROR_MESSAGE);
return;
}

catch (exceptionAccount num) {
if(exception){
JOptionPane.showMessageDialog(null,"Codigo Invalido!! debe estar entre 1 y 200","Codigo ERRONEO",JOptionPane.ERROR_MESSAGE);
jTextField1.selectAll();
jTextField1.requestFocus();
return;
}
} catch (exceptionfirstName le) {
if(exception1){
JOptionPane.showMessageDialog(null,"Nombre INCOMPLETO!!!","Error en ingreso de nombre",JOptionPane.ERROR_MESSAGE);
jTextField2.selectAll();
jTextField2.requestFocus();
return;
}
} catch (exceptionlastName let) {
if(exception2){
JOptionPane.showMessageDialog(null,"Apellido INCOMPLETO!!!","Error en ingreso de apellido",JOptionPane.ERROR_MESSAGE);
jTextField3.selectAll();
jTextField3.requestFocus();
return;
}
} catch (Exception e) {
JOptionPane jOP = new JOptionPane();
JOptionPane.showMessageDialog(null, "Error de escritura, archivo de errores","Error de Escritura", 0);
}

try{
FileWriter texto= new FileWriter("clientes.txt", true);
entrada=jTextField4.getText().trim();
saldo = Integer.valueOf(entrada);
exception3 = record.balance(saldo);
if(exception3 == true){
throw new exceptionbalance();
} else
if(exception3==false){
JOptionPane.showMessageDialog(null,"Registro Guardado EXITOSAMENTE","Ingreso de registro",JOptionPane.INFORMATION_MESSAGE); }
texto.write(saldo+" "+"\n");
texto.close();
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextArea1.setText("");
} catch(NumberFormatException m){
jTextField4.selectAll();
jTextField4.requestFocus();
JOptionPane.showMessageDialog(null,"Monto invalido, esta en Blanco o tiene letras","Error en ingreso de monto",JOptionPane.ERROR_MESSAGE);
return;
} catch(exceptionbalance nume){
if(exception3){
JOptionPane.showMessageDialog(null,"Monto debe estar entre -100.000 y 10.000.000","Error en monto de dinero Ingresado",JOptionPane.ERROR_MESSAGE);
jTextField4.selectAll();
jTextField4.requestFocus();
return;
}
} catch (Exception e) {
JOptionPane jOP = new JOptionPane();
JOptionPane.showMessageDialog(null, "Error de escritura, archivo de errores","Error de Escritura", 0);
}
}//GEN-LAST:event_jButton1ActionPerformed

private void jButton6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton6ActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_jButton6ActionPerformed

private void jButton7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton7ActionPerformed
// TODO add your handling code here:

try{
FileReader fr = new FileReader("clientes.txt");
BufferedReader bf = new BufferedReader(fr);

String linea = "";
String linea2="";

while (codigo<0)

linea2+=linea+"\n";
jTextArea1.setText(linea2);

}catch (Exception mia){
JOptionPane.showMessageDialog(null, mia);
}

}//GEN-LAST:event_jButton7ActionPerformed

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new EjecutorScanner().setVisible(true);
}
});
}

// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JButton jButton3;
private javax.swing.JButton jButton4;
private javax.swing.JButton jButton5;
private javax.swing.JButton jButton6;
private javax.swing.JButton jButton7;
private javax.swing.JButton jButton8;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel5;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
// End of variables declaration//GEN-END:variables
private Formatter output;
String entrada, nombre, apellido;
CuentaCorriente record;
int codigo, saldo;
}

ahi va mi codigo principal ojala me ayudes a implementarlo

Imagen de neko069

El separador debe estar estar

El separador debe estar estar ( valga la rebuznancia ) separando los campos, a su vez que lo implementas en código...
es decir, en tu archivo puedes tener:

ElNombre , ElApellido , ElUltimoApellido, LaDireccion , ElSaldo1 , ElSaldo2 ....etc..

El separador es la coma ( , ) entonces, puedes, en tu fragmento de código, donde está lo de la lectura del archivo, y a su vez lo adhieres a un JTextArea lo siguiente

FileReader fr = new FileReader("clientes.txt");
BufferedReader bf = new BufferedReader(fr);
String linea;
String linea2="";
while ((linea = bf.readLine())!=null){    // Yo aquí me olvido de que lo estas agregando el contenido de tus líneas al JTextArea, eso ya lo agregas
   StringTokenizer tokens = new StringTokenizer(  linea , "," ){ //Aquí el StringTokenizer acepta como argumentos, tu cadena y tu separador
   
    while( tokens.hasMoreTokens() ){
    // aquí se supone que tendrías que llevar la cuenta de tus campos,
    // para saber cuándo son datos y cuando los saldos que requieres
        String elToken = token.nextToken();
        //Así recuperas los datos, y pues ya según la posición en que vayas, lo cambias al tipo de dato que necesitas (down casting)
        //Aquí pues ya irían tus comparaciones....
    }

Y si lo necesitas con split() ... pues mejor te dejo la liga a la documentación de StringTokenizer ahí mismo viene explicado cómo funciona cada clase y el método para seleccionar datos de líneas... inténtalo y si tienes otras dudas, pues ya andaremos por aquí ...
Nota: Por favor, pon tú código entre tags de < code > y < / code > así en texto plano es difícil entender todo lo que escribes..

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">