Dificuldade com bufferedReader e PrintWriter

2 respostas
V

Olá javaAmigos :)

sou um estudante de java com muito pra aprender

estou quebrando a cabeça com o codigo a seguir:
minhas maiores dificuldades são com os recursos de entrada e saida(comecei recentemente) :shock:

estou querendo simplesmete pegar nome e idade de um numero ilimitado de Atletas
e depois imprimir a lista com todas as entradas

será que alguem pode me ajudar

abração

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.Writer;
import java.util.Vector;
import javax.swing.JOptionPane;


public class JogadorDeFutebol extends Atleta {
	
	
	public static void main(String [] args, InputStream InputStream, Writer OutputStream) throws IOException{
	
		Vector<Atleta> v = new Vector<Atleta>();	
		Boolean flag = true;
		
		    //como pegar adequadamente algo do entrada padrão para leitura com buffered
		    BufferedReader l = new BufferedReader(new InputStreamReader(InputStream));       
		    String mens = " ";
		    mens = l.readLine();
		    JOptionPane.showInputDialog(null, mens);
		    
		    
	       //duvidas no uso adequando da escrita
		    PrintWriter pt = new PrintWriter(OutputStream); 
		    pt.print(mens);
		    pt.flush();
			
		    
		    
		    while(flag){

				Atleta a = new JogadorDeFutebol();
    	    
		            //pegar os dados digitados na entrada padrão e armazenar em a 		
			        a.setNome(l.readLine());	
                    a.setIdade(l.read());
				
					v.add(a);    
    
					//sai do modo cadastrar
					String resp = l.readLine();
					JOptionPane.showInputDialog("deseja finalizar a inserção?");
						if(resp.equalsIgnoreCase("SIM") || resp.equalsIgnoreCase("S")){
							flag = false;
						}
			}
    
			
			//e imprimi tudo que foi cadastrado
			for(int x = 0; x < v.size(); x++){
		
				Atleta a = (Atleta) v.get(x);
				String nome = a.getNome();
				System.out.println(nome);
    
					Integer idade = a.getIdade();
					System.out.println(idade);
    	
			}
    
   	
	}
}

2 Respostas

M

Seu main não roda, ele não conta como main que inicia uma aplicação, é apenas um método estatico. Main tem só um parâmetro que obrigatoriamente é um vararg ou um array, ambos de String.
Use ArrayList, não Vector.
Se quer simplicidade use Scanner. Apesar de ser bem mais lento que BufferedReader é mais simples de usar e deve se aplicar ao seu caso.
Não usa Boolean ou classes de tipos primivitos sem necessidade.

V

obrigado amigo

entendo que o uso do scanner é mais simples
mais estou tentando aprender IO E Swing

vc pode me ajudar a fazer este codigo rodar com estes recursos mais avançados?

grato desde já

Criado 25 de janeiro de 2010
Ultima resposta 25 de jan. de 2010
Respostas 2
Participantes 2