Problemas com arquivos Texto

1 resposta
M

estou com problemas em separar as posições no vetor, abaixo as duas classes.

import java.io.*;
public class Pessoa
 {
    // atributos 
    private String partido=null;
    private int numero=0;
    private String NomeCandidato=null;
    private int votos=0;
         
    
    // construtor com parâmetros
    public Pessoa(String partido,int numero,String NomeCandidato,int votos)
     {
       this.partido=partido;
       this.numero=numero;	
       this.NomeCandidato = NomeCandidato;
       this.votos=votos;
       
       
	}

    
    // retorna um nome do tipo string
    public String getpartido() 
        {
            return this.partido;
        }

    // altera o conteúdo do atributo nome
    public void setpartido(String partido) 
     {
            this.partido = partido;
     }
    
    //-----------------------------------------
    
    // retorna um nome do tipo string
    public int getnumero() 
        {
            return this.numero;
        }

    // altera o conteúdo do atributo nome
    public void setnumero(int numero) 
     {
            this.numero = numero;
     }
    
    //-----------------------------------------
    
    // retorna um nome do tipo string
    public String getNomeCandidato() 
        {
            return this.NomeCandidato;
        }

    // altera o conteúdo do atributo nome
    public void setNomeCandidato(String NomeCandidato) 
     {
            this.NomeCandidato = NomeCandidato;
     }
     
     //-----------------------------------------
     
     // retorna um nome do tipo string
    public int getvotos() 
        {
            return this.votos;
        }

    // altera o conteúdo do atributo nome
    public void setvotos(int votos) 
     {
            this.votos = votos;
     }
     
     //-----------------------------------------
     
    public void escrever(){
    	System.out.println(partido+" "+numero+" "+NomeCandidato+" "+votos);
    }  
  
     
 }    
     
    /*
    public void CandidatoEleito(){
 	  try{
 	   	  	RandomAccessFile f = new RandomAccessFile("Candidatos.txt","r");
			String linha = f.readLine();
			while(linha!=null){
				
				if(this.eleito == true){
     				System.out.println("Candidatos Eleitos:" +linha);
     		
     			}
					linha = f.readLine();
				}
		}
		 catch(IOException e){
		 	System.out.println("Nao foi lido o arquivo");
		 }
 	}
 	*/
	

/*this.linha = linha;
       		if (this.NomeCandidato.contains("*")){
				 	this.eleito = true;
			 	}	
       			else{
       				this.eleito = false;
       			}
*/
import java.io.*;
import java.lang.*;
public class Principal
 {
 	private Pessoa pessoa[] = null;
 	private int tamanho=0;
 	
 	
 	public Principal(){
 		this.pessoa = null;
 		this.tamanho=0;
 	}
 	
 	public void criarvetor(){
 		//le o arquivo para contat o numero de linhas
 		try{
 			//abre o arquivo
 			RandomAccessFile f=new RandomAccessFile("Candidatos.txt","r");
 			int cont=0;
 			String linha=f.readLine(); //lê a linha
 			while(linha!=null){  //le enquanto não tiver uma linha em branco
 				cont++;
 				linha=f.readLine(); //lê a proxima linha
 			}
 			
 			//altera altera o valor do atributo tamanho
 			this.tamanho=cont;
 			
 			//cria o vetor
 			this.pessoa=new Pessoa[this.tamanho];
 			//fecha o arquivo
 			f.close();
 			//System.out.println(cont);
 		}
 		catch (IOException e){
 			e.printStackTrace();
 			}
 			
 	}
 	
 	public void AlimentaVetor(){
 		
 		try{
 			RandomAccessFile f = new RandomAccessFile("Candidatos.txt","r");
 			String linha=f.readLine();
 			int posicao=0;
 			//int contador=0;  //contador de linhas não utilizado
 			int l1=0;
 			while(linha!=null){
 				//separa os dados da linha
 				
 				String x[]=linha.split("\t");
 				//System.out.println("ate aqui funciona"+contador++);
 				//cria o objeto no vetor
 				this.pessoa[posicao]=new Pessoa ((x[0]),Integer.parseInt(x[1]),(x[2]),Integer.parseInt(x[3]));
 				//this.pessoa[posicao]=new Pessoa (x[0],x[1],x[2],x[3]);			
 				//incrementa a posição
 				posicao++;
 				
 				//testa para ver se já preencheu o vetor
 				if (posicao==this.tamanho){
 					//encerra
 					break;
 				
 				}
 				
 				
 				//le a proxima linha
 				linha=f.readLine();
 					
 			}
 			System.out.println(l1++);
 		}
        	catch (IOException e){
        	e.printStackTrace();
 			}
 			
 	}
 	
  	public void leitura(){
	try{
		RandomAccessFile f = new RandomAccessFile("Candidatos.txt","r");
		String linha = f.readLine();
		while(linha!=null){
				System.out.println(linha);// ==> String
				linha = f.readLine();
				}
		}
		 catch(IOException e){
		 	System.out.println("Nao foi lido o arquivo");
		 }
 	}
 	
 	public void escrever(){
 		for (int i=0;i<tamanho;i++){
 			pessoa[i].escrever();
 		}
 	}

	public void executar(){
		//this.leitura();
		this.criarvetor();
		this.AlimentaVetor();
		this.escrever();
	}

 	
 	public static void main(String args[]){
 		Principal p = new Principal();
 		p.executar();
 		
 	} 
}

Atcs.
[email removido]

[color="red"][size="9"]* Utilize BBCode em seus posts e aumente as chances de resposta - Guilherme Mello[/size][/color]

1 Resposta

F

Dúvidas?

Criado 12 de dezembro de 2006
Ultima resposta 12 de dez. de 2006
Respostas 1
Participantes 2