sobre buscar datos archivos de texto
Publicado por CARLOS ADRIAN SOTO (20 intervenciones) el 10/01/2010 06:01:45
buenas noches, por favor solicito ayuda sobre buscar datos en un archivo de texto, he buscado en google pero no he encontrado mucho que me sea de gran ayuda.
de antemano agradezco a quien pueda ayudarme.
lo que pretendo hacer es que al ingresar un dato la aplicacion lo busque y si existe en el archivo regrese todos los datos, si no que permita crear un nuevo registro.
adjunto codigo.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package INVENTARIO;
/**
*
* @author soto
*/
import java.awt.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
public class Producto extends JFrame implements ActionListener{
JLabel j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11;
JTextField t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;
JButton b1,b2;
Container contenedor;
String NC,NB,NL,CI,CB,D,M,UM;
double P,I,PV,PC,D1,D2,D3,CNT,CTOPRO;
String ruta="/home/soto/Documentos/producto.txt";
DataInputStream archivo=null;
public Producto(){
JFrame ventana=new JFrame("SOTOSOFTWARE");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);//hace que el boton cerrar del JFrame pare la aplicacion
this.setLocationRelativeTo(null);//ubica la ventana en el centro independiente de la resolucion de pantalla
Container contenedor=this.getContentPane();//iguala el container al contenedor del JFrame
contenedor.setLayout(new GridLayout(6,1));//manejar 6 renglones y 2 filas
Font fuente=new Font("Norasi",Font.BOLD,18);//fuente para etiquetas y botones
j1=new JLabel("numero de cuenta");
j2=new JLabel("bodega");
j3=new JLabel("linea");
j4=new JLabel("Codigo");
j5=new JLabel("codigo de barras");
j6=new JLabel("descripcion");
j7=new JLabel("marca");
j8=new JLabel("unidad de medida");
j9=new JLabel("peso");
j10=new JLabel("impuesto");
j11=new JLabel("precio venta");
t1=new JTextField(8);t2=new JTextField(5);t3=new JTextField(2);
t4=new JTextField(12);t5=new JTextField(15);t6=new JTextField(20);
t7=new JTextField(20);t8=new JTextField(5);t9=new JTextField(10);
t10=new JTextField(2);t11=new JTextField(10);
b1=new JButton("GUARDAR");b2=new JButton("LIMPIAR");
Container renglon1=new Container();
renglon1.setLayout(new GridLayout(1,4));
Container renglon2=new Container();
renglon2.setLayout(new GridLayout(1,4));
Container renglon3=new Container();
renglon3.setLayout(new GridLayout(1,4));
Container renglon4=new Container();
renglon4.setLayout(new GridLayout(1,4));
Container renglon5=new Container();
renglon5.setLayout(new GridLayout(1,4));
Container renglon6=new Container();
renglon6.setLayout(new GridLayout(1,4));
renglon1.add(j1);renglon1.add(t1);renglon1.add(j7);renglon1.add(t7);
renglon2.add(j2);renglon2.add(t2);renglon2.add(j8);renglon2.add(t8);
renglon3.add(j3);renglon3.add(t3);renglon3.add(j9);renglon3.add(t9);
renglon4.add(j4);renglon4.add(t4);renglon4.add(j10);renglon4.add(t10);
renglon5.add(j5);renglon5.add(t5);renglon5.add(j11);renglon5.add(t11);
renglon6.add(j6);renglon6.add(t6);renglon6.add(b1);renglon6.add(b2);
j1.setFont(fuente);j2.setFont(fuente);j3.setFont(fuente);
j4.setFont(fuente);j5.setFont(fuente);j6.setFont(fuente);
j7.setFont(fuente);j8.setFont(fuente);j9.setFont(fuente);
j10.setFont(fuente);j11.setFont(fuente);b1.setFont(fuente);
b2.setFont(fuente);
b1.addActionListener(this);
b2.addActionListener(this);
contenedor.add(renglon1);contenedor.add(renglon2);
contenedor.add(renglon3);contenedor.add(renglon4);
contenedor.add(renglon5);contenedor.add(renglon6);
this.setContentPane(contenedor);//reemplazamos el contenedor principal por el creado
this.pack();//hace que la ventana tome el tamaño exacto para los componenetes
this.setVisible(true);//hace que se muestre la ventana, por defecto es false y no se veria nada
}
public void aperturaProducto(){
NC=t1.getText();
buscarLlave();
NB=t2.getText();
NL=t3.getText();
CI=t4.getText();
CB=t5.getText();
D=t6.getText();
M=t7.getText();
UM=t8.getText();
P=Double.parseDouble(t9.getText());
I=Double.parseDouble(t10.getText());
PV=Double.parseDouble(t11.getText());
}
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(b1)){
aperturaProducto();
try{
FileWriter fw=new FileWriter(ruta);
BufferedWriter bw=new BufferedWriter(fw);
PrintWriter guardar=new PrintWriter(bw);
guardar.println(NC);
guardar.println(NB);
guardar.println(NL);
guardar.println(CI);
guardar.println(CB);
guardar.println(D);
guardar.println(M);
guardar.println(UM);
guardar.println(P);
guardar.println(I);
guardar.println(PV);
guardar.close();
bw.close();
fw.close();
System.out.println("se hizo bien");
}catch(IOException ioex)
{
System.out.println("hkjhkjhkjh");
}
}
if(e.getSource().equals(b2)){
t1.setText("");t2.setText("");
t3.setText("");t4.setText("");
t5.setText("");t6.setText("");
t7.setText("");t8.setText("");
t9.setText("");t10.setText("");
t11.setText("");
}
}
public void buscarLlave()throws IOException{
try{
archivo =new DataInputStream(new FileInputStream(ruta));
while(true){
String llave=archivo.readUTF();
if(llave.equals(NC)){
NC=archivo.readUTF();
NB=archivo.readUTF();
NL=archivo.readUTF();
CI=archivo.readUTF();
CB=archivo.readUTF();
D=archivo.readUTF();
M=archivo.readUTF();
UM=archivo.readUTF();
P=archivo.readDouble();
I=archivo.readDouble();
PV=archivo.readDouble();
t1.setText(NC);
t2.setText(NB);
t3.setText(NL);
t4.setText(CI);
t5.setText(CB);
t6.setText(D);
t7.setText(M);
t8.setText(UM);
t9.setText(P);
t10.setText(I);
archivo.close();
}
}
}catch(FileNotFoundException f){
}
}
public static void main(String args[]){
new Producto();
}
}
de antemano agradezco a quien pueda ayudarme.
lo que pretendo hacer es que al ingresar un dato la aplicacion lo busque y si existe en el archivo regrese todos los datos, si no que permita crear un nuevo registro.
adjunto codigo.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package INVENTARIO;
/**
*
* @author soto
*/
import java.awt.*;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;
public class Producto extends JFrame implements ActionListener{
JLabel j1,j2,j3,j4,j5,j6,j7,j8,j9,j10,j11;
JTextField t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11;
JButton b1,b2;
Container contenedor;
String NC,NB,NL,CI,CB,D,M,UM;
double P,I,PV,PC,D1,D2,D3,CNT,CTOPRO;
String ruta="/home/soto/Documentos/producto.txt";
DataInputStream archivo=null;
public Producto(){
JFrame ventana=new JFrame("SOTOSOFTWARE");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);//hace que el boton cerrar del JFrame pare la aplicacion
this.setLocationRelativeTo(null);//ubica la ventana en el centro independiente de la resolucion de pantalla
Container contenedor=this.getContentPane();//iguala el container al contenedor del JFrame
contenedor.setLayout(new GridLayout(6,1));//manejar 6 renglones y 2 filas
Font fuente=new Font("Norasi",Font.BOLD,18);//fuente para etiquetas y botones
j1=new JLabel("numero de cuenta");
j2=new JLabel("bodega");
j3=new JLabel("linea");
j4=new JLabel("Codigo");
j5=new JLabel("codigo de barras");
j6=new JLabel("descripcion");
j7=new JLabel("marca");
j8=new JLabel("unidad de medida");
j9=new JLabel("peso");
j10=new JLabel("impuesto");
j11=new JLabel("precio venta");
t1=new JTextField(8);t2=new JTextField(5);t3=new JTextField(2);
t4=new JTextField(12);t5=new JTextField(15);t6=new JTextField(20);
t7=new JTextField(20);t8=new JTextField(5);t9=new JTextField(10);
t10=new JTextField(2);t11=new JTextField(10);
b1=new JButton("GUARDAR");b2=new JButton("LIMPIAR");
Container renglon1=new Container();
renglon1.setLayout(new GridLayout(1,4));
Container renglon2=new Container();
renglon2.setLayout(new GridLayout(1,4));
Container renglon3=new Container();
renglon3.setLayout(new GridLayout(1,4));
Container renglon4=new Container();
renglon4.setLayout(new GridLayout(1,4));
Container renglon5=new Container();
renglon5.setLayout(new GridLayout(1,4));
Container renglon6=new Container();
renglon6.setLayout(new GridLayout(1,4));
renglon1.add(j1);renglon1.add(t1);renglon1.add(j7);renglon1.add(t7);
renglon2.add(j2);renglon2.add(t2);renglon2.add(j8);renglon2.add(t8);
renglon3.add(j3);renglon3.add(t3);renglon3.add(j9);renglon3.add(t9);
renglon4.add(j4);renglon4.add(t4);renglon4.add(j10);renglon4.add(t10);
renglon5.add(j5);renglon5.add(t5);renglon5.add(j11);renglon5.add(t11);
renglon6.add(j6);renglon6.add(t6);renglon6.add(b1);renglon6.add(b2);
j1.setFont(fuente);j2.setFont(fuente);j3.setFont(fuente);
j4.setFont(fuente);j5.setFont(fuente);j6.setFont(fuente);
j7.setFont(fuente);j8.setFont(fuente);j9.setFont(fuente);
j10.setFont(fuente);j11.setFont(fuente);b1.setFont(fuente);
b2.setFont(fuente);
b1.addActionListener(this);
b2.addActionListener(this);
contenedor.add(renglon1);contenedor.add(renglon2);
contenedor.add(renglon3);contenedor.add(renglon4);
contenedor.add(renglon5);contenedor.add(renglon6);
this.setContentPane(contenedor);//reemplazamos el contenedor principal por el creado
this.pack();//hace que la ventana tome el tamaño exacto para los componenetes
this.setVisible(true);//hace que se muestre la ventana, por defecto es false y no se veria nada
}
public void aperturaProducto(){
NC=t1.getText();
buscarLlave();
NB=t2.getText();
NL=t3.getText();
CI=t4.getText();
CB=t5.getText();
D=t6.getText();
M=t7.getText();
UM=t8.getText();
P=Double.parseDouble(t9.getText());
I=Double.parseDouble(t10.getText());
PV=Double.parseDouble(t11.getText());
}
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(b1)){
aperturaProducto();
try{
FileWriter fw=new FileWriter(ruta);
BufferedWriter bw=new BufferedWriter(fw);
PrintWriter guardar=new PrintWriter(bw);
guardar.println(NC);
guardar.println(NB);
guardar.println(NL);
guardar.println(CI);
guardar.println(CB);
guardar.println(D);
guardar.println(M);
guardar.println(UM);
guardar.println(P);
guardar.println(I);
guardar.println(PV);
guardar.close();
bw.close();
fw.close();
System.out.println("se hizo bien");
}catch(IOException ioex)
{
System.out.println("hkjhkjhkjh");
}
}
if(e.getSource().equals(b2)){
t1.setText("");t2.setText("");
t3.setText("");t4.setText("");
t5.setText("");t6.setText("");
t7.setText("");t8.setText("");
t9.setText("");t10.setText("");
t11.setText("");
}
}
public void buscarLlave()throws IOException{
try{
archivo =new DataInputStream(new FileInputStream(ruta));
while(true){
String llave=archivo.readUTF();
if(llave.equals(NC)){
NC=archivo.readUTF();
NB=archivo.readUTF();
NL=archivo.readUTF();
CI=archivo.readUTF();
CB=archivo.readUTF();
D=archivo.readUTF();
M=archivo.readUTF();
UM=archivo.readUTF();
P=archivo.readDouble();
I=archivo.readDouble();
PV=archivo.readDouble();
t1.setText(NC);
t2.setText(NB);
t3.setText(NL);
t4.setText(CI);
t5.setText(CB);
t6.setText(D);
t7.setText(M);
t8.setText(UM);
t9.setText(P);
t10.setText(I);
archivo.close();
}
}
}catch(FileNotFoundException f){
}
}
public static void main(String args[]){
new Producto();
}
}
Valora esta pregunta
0