Gravar arquivos .txt

5 respostas
T

Estou com problemas para gravar arquivos .txt, sou iniciante em java e estou fazendo um trabalho que tem que criar este tio de arquivo ao cadastar, no meu caso (Candiadtos e Eleitores).Bem o prolema e o seguinte, milha classe grava somente um cadastro, ao pedir para cadastar outro e cadastra por cima do primeiro. aqui esta o codigo dele para melhor compreensão.

então ja tentei de tudo, oque eu queria e q quanto clicar no buttonO ele gravasse os dados!!!

package Tela;

import Objeto.Candidatos;

import java.awt.Button;

import java.awt.Checkbox;

import java.awt.CheckboxGroup;

import java.awt.Color;

import java.awt.Frame;

import java.awt.Label;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.ItemEvent;

import java.awt.event.ItemListener;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.ObjectOutputStream;

import java.io.RandomAccessFile;
public class TelaC2 extends Frame implements ActionListener,ItemListener{

private ObjectOutputStream saida;

private Button buttonO;

private Button button5;

private TextField textField1;

private TextField textField2;

private TextField textField3;

private TextField textField4;

private Label label1;

private Label label2;

private Label label3;

private Label label4;

private Checkbox checkBox1;

private Checkbox checkBox2;

private CheckboxGroup group;

TelaC1 P;

private Candidatos inicio;

private Candidatos  fim;

public TelaC2(){

super(CADASTRO:);

setBackground(new Color(90,200,204));

setSize(400,200);

setLocation(90,90);

setLayout(null);

setVisible(true);

addWindowListener(new FechaTela());

buttonO=new Button(OK);

buttonO.setLocation(300,150);

buttonO.setSize(60,20);

buttonO.isVisible();

buttonO.addActionListener(this);

add(buttonO);

button5=new Button("<==VOLTAR");

button5.setLocation(15,165);

button5.setSize(80,20);

button5.isVisible();

button5.addActionListener(this);

add(button5);

textField1= new TextField("");

textField1.setLocation(90,50);

textField1.setSize(200,20);

textField1.isVisible();

add(textField1);

textField2=new TextField("");

textField2.setLocation(90,75);

textField2.setSize(100,20);

textField2.isVisible();

add(textField2);

textField3=new TextField("");

textField3.setLocation(90,100);

textField3.setSize(100,20);

textField3.isVisible();

add(textField3);

label1=new Label(NOME:);

label1.setLocation(32,50);

label1.setSize(40,20);

label1.isVisible();

add(label1);

label2=new Label(NUMERO:);

label2.setLocation(15,75);

label2.setSize(68,20);

label2.isVisible();

add(label2);

label3=new Label(PARTIDO:);

label3.setLocation(15,100);

label3.setSize(68,20);

label3.isVisible();

add(label3);

label4=new Label(DIGITE OS DADOS:);

label4.setLocation(20,20);

label4.setSize(350,20);

label4.setForeground(new Color(206,0,0));

label4.setFont(new java.awt.Font(Arial Narrow, 1, 14));

label4.isVisible();

add(label4);

group= new CheckboxGroup();

checkBox1= new Checkbox(MACULINO,group,false);

checkBox1.setLocation(90,130);

checkBox1.setSize(80,20);

checkBox1.isVisible();

checkBox1.addItemListener(this);

add(checkBox1);

checkBox2= new Checkbox(FEMININO,group,false);

checkBox2.setLocation(175,130);

checkBox2.setSize(85,20);

checkBox2.isVisible();

checkBox2.addItemListener(this);

add(checkBox2);

this.inicio = null;

this.fim = null;

}

public void actionPerformed(ActionEvent e){
if(e.getSource()==buttonO){
    try{
        RandomAccessFile arq=new RandomAccessFile("dados.txt","rw");
        do{
        arq=new RandomAccessFile("dados.txt","w");
        arq.writeBytes(""+textField1.getText()+" "+textField2.getText()+" "+textField3.getText()+"\n");
        }while(arq.readLine().compareToIgnoreCase("\n")==0);
    }catch(IOException exc){
        textField1.setText("Erro!!!"+exc.toString());    
        }
    }
    else if(e.getSource()==button5){
         P=new TelaC1();
         P.setVisible(true);
         setVisible(false);
    }            
}
	public void insere(Candidatos r){
	if(this.inicio==null){
		this.inicio = this.fim=r;
	}
	else{
		//this.fim.setProx(r);
		this.fim = r;
	}
}
public void itemStateChange (ItemEvent e){
         if(e.getSource()==checkBox1){
         }
         else if(e.getSource()==checkBox2){
         }
}
public void itemStateChanged(ItemEvent e) {
    throw new UnsupportedOperationException("Not supported yet.");
}
    public static void main(String args[]){
    TelaC2 tC2=new TelaC2();        
}

}

5 Respostas

S

amigo, hehehe, eu tava tao feliz, achei q ia resolver seu problema…hehehehe, mas nunca useo a classe RandomAccessFile.
Mas vo te perguntar, pq vc n tenta isso aki

http://www.guj.com.br/java.artigo.13.1.guj

aki tem um exemplo q ajudar

public static void main(String[] args) {
		for (int i = 0; i < 4; i++) {
			File file = new File("dados.txt");
			FileWriter fw;
			try {
				fw = new FileWriter(file, true);
				PrintWriter pw = new PrintWriter(fw, true);
				pw.println("teste "+i);
				pw.println("Mais um teste "+i);
				pw.println();
				pw.close();
				fw.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
T

não quero q faça para mim, essa não e minha intensão mas gostaria de sabe oq faz ou oq esta de errado na minha classe!!
valeww!!!

S

thiago.n.vieira:
não quero q faça para mim, essa não e minha intensão mas gostaria de sabe oq faz ou oq esta de errado na minha classe!!
valeww!!!

aff cara, malz aew, achei que eu tava ajudando.
Entao n vo poder ajudar, nunca usei esse metodo.

desculpa

M

cara se vc nao quer abrir mao do RandomAccessFile, uma solucao pode ser essa:

RandomAccessFile arq = new RandomAccessFile("dados.txt", "rw");
		FileReader reader = new FileReader(new File("dados.txt"));
		BufferedReader leitor = new BufferedReader(reader);
		String linha = null;
		while((linha = leitor.readLine())!= null){				 
			 arq.writeBytes(linha+"\n");				
		}	
		arq.writeBytes("123\n");

lembrando que existem outras classes ao inves de RandomAccessFile, que te dariam a possibilidade de incluir no arquivo txt e nao sobrescrever como esta sendo feito

[]s

T

Bom, mas quais são esta classe como vc pode ver não um bom entedimento sobre o assunto vc poderia me mostra quais são elas???

Criado 13 de novembro de 2008
Ultima resposta 14 de nov. de 2008
Respostas 5
Participantes 3