package Model;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class app {
private static List<Jogador> jogadores;
private static Scanner teclado;
public static void cadastrarJogador() throws IOException {
// carregar arquivo de texto para arrylist
System.out.println("Opção selecionada: Cadastrar Jogador");
File arquivo = new File(
"/Users/*****/Documents/Documentos Brendo/Unifacear/POO/Atividade jogador/Jogador cadastrado.txt");
if (!arquivo.exists()) {
arquivo.createNewFile();
}
FileWriter escrever_no_arquivo = new FileWriter(arquivo);
// cria um novo jogador
Jogador jogador = new Jogador();
System.out.print("Informe o nome: ");
escrever_no_arquivo.write("");
jogador.setNome(teclado.next());
escrever_no_arquivo.flush();
System.out.print("Informe a posição: ");
escrever_no_arquivo.write("");
jogador.setPosicao(teclado.next());
escrever_no_arquivo.flush();
System.out.print("Informe o número da camisa: ");
escrever_no_arquivo.write("");
jogador.setNumeroDaCamisa(Byte.parseByte(teclado.next()));
escrever_no_arquivo.flush();
System.out.print("Informe o usuário: ");
escrever_no_arquivo.write("");
jogador.setUsuario(teclado.next());
escrever_no_arquivo.flush();
System.out.print("Informe a senha: ");
escrever_no_arquivo.write("");
jogador.setSenha(teclado.next());
escrever_no_arquivo.flush();
System.out.println("Jogador criado com sucesso!");
// adiciona jogador na lista
jogadores.add(jogador);
// cerregar da arrylist para arquivo de texto
}
List<String> listPalavras = new ArrayList<>();
public static void listarTodos() throws IOException {
System.out.println("Jogadores cadastrados:");
FileInputStream stream = new FileInputStream(
"/Users/******/Documents/Documentos Brendo/Unifacear/POO/Atividade jogador/Jogador cadastrado.txt");
InputStreamReader reader = new InputStreamReader(stream);
BufferedReader br = new BufferedReader(reader);
String linha = br.readLine();
while (linha != null) {
System.out.println(linha);
linha = br.readLine();
for (Jogador jogador : jogadores) {
System.out.println("");
System.out.println("Nome....: " + jogador.getNome());
System.out.println("Posição.: " + jogador.getPosicao());
System.out.println("Camisa..: " + jogador.getNumeroDaCamisa());
System.out.println("Usuário.: " + jogador.getUsuario());
System.out.println("Senha...: " + jogador.getSenha());
System.out.println("Situação: " + (jogador.isSituacao() ? "Ativo" : "Inativo"));
System.out.println("");
}
}
}
public static void main(String[] args) throws Exception {
// instancia o teclado
teclado = new Scanner(System.in);
// instancia a lista de jogadores
// trocar passar o metodo
jogadores = new ArrayList<>();
// variavel para verificar a opção selecionada do menu
String opcaoDigitada = "";
// loop infinito
while (true) {
System.out.println("---------------------------------");
System.out.println("MENU JOGADOR");
System.out.println("---------------------------------");
System.out.println("1 - Cadastrar");
System.out.println("2 - Editar");
System.out.println("3 - Pesquisar pela posição");
System.out.println("4 - Listar todos");
System.out.println("5 - Ativar / Inativar");
System.out.println("0 - Sair");
System.out.println("---------------------------------");
System.out.print("Digite a opção desejada: ");
opcaoDigitada = teclado.next();
if (opcaoDigitada.equals("0")) {
System.out.println(" Menu jogador fechado");
break; // sai do loop
} else if (opcaoDigitada.equals("1")) {
cadastrarJogador();
} else if (opcaoDigitada.equals("2")) {
// implementar a opção para editar
} else if (opcaoDigitada.equals("3")) {
// implementar a opção para filtrar jogadores pela posição
} else if (opcaoDigitada.equals("4")) {
listarTodos();
} else if (opcaoDigitada.equals("5")) {
// implementar a opção para ativar / inativar jogador
} else {
System.out.println("Comando inválido!");
}
}
teclado.close();
}
}
É que você não está gravando nada no arquivo, olha só:
escrever_no_arquivo.write("");
package Model;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
public class app {
private static List<Jogador> jogadores;
private static Scanner teclado;
public static void cadastrarJogador() throws IOException {
// carregar arquivo de texto para arrylist
System.out.println("Opção selecionada: Cadastrar Jogador");
File arquivo = new File(
"/Users/*******/Documents/Documentos Brendo/Unifacear/POO/Atividade jogador/Jogador cadastrado.txt");
if (!arquivo.exists()) {
arquivo.createNewFile();
}
FileWriter escrever_no_arquivo = new FileWriter(arquivo);
// cria um novo jogador
Jogador jogador = new Jogador();
System.out.println( "Informe o nome: ");
jogador.setNome(teclado.next());
escrever_no_arquivo.flush();
escrever_no_arquivo.write(jogador.getNome());
System.out.println("Informe a posição: ");
jogador.setPosicao(teclado.next());
escrever_no_arquivo.flush();
escrever_no_arquivo.write(jogador.getPosicao());
System.out.println("Informe o número da camisa: ");
jogador.setNumeroDaCamisa(Byte.parseByte(teclado.next()));
escrever_no_arquivo.flush();
escrever_no_arquivo.write(jogador.getNumeroDaCamisa());
System.out.println("Informe o usuário: ");
jogador.setUsuario(teclado.next());
escrever_no_arquivo.flush();
escrever_no_arquivo.write(jogador.getUsuario());
System.out.println("Informe a senha: ");
jogador.setSenha(teclado.next());
escrever_no_arquivo.flush();
escrever_no_arquivo.write(jogador.getSenha());
System.out.println("Jogador criado com sucesso!");
// adiciona jogador na lista
jogadores.add(jogador);
escrever_no_arquivo.close();
}
List<String> listPalavras = new ArrayList<>();
public static void listarTodos() throws IOException {
System.out.println("Jogadores cadastrados:");
FileInputStream stream = new FileInputStream(
"/Users/******/Documents/Documentos Brendo/Unifacear/POO/Atividade jogador/Jogador cadastrado.txt");
InputStreamReader reader = new InputStreamReader(stream);
BufferedReader br = new BufferedReader(reader);
String linha = br.readLine();
System.out.println(linha);
linha = br.readLine();
for (Jogador jogador : jogadores) {
System.out.println("");
System.out.println("Nome....: " + jogador.getNome());
System.out.println("Posição.: " + jogador.getPosicao());
System.out.println("Camisa..: " + jogador.getNumeroDaCamisa());
System.out.println("Usuário.: " + jogador.getUsuario());
System.out.println("Senha...: " + jogador.getSenha());
System.out.println("Situação: " + (jogador.isSituacao() ? "Ativo" : "Inativo"));
System.out.println("");
}
}
public static void main(String[] args) throws Exception {
// instancia o teclado
teclado = new Scanner(System.in);
// instancia a lista de jogadores
// trocar passar o metodo
jogadores = new ArrayList<>();
// variavel para verificar a opção selecionada do menu
String opcaoDigitada = "";
// loop infinito
while (true) {
System.out.println("---------------------------------");
System.out.println("MENU JOGADOR");
System.out.println("---------------------------------");
System.out.println("1 - Cadastrar");
System.out.println("2 - Editar");
System.out.println("3 - Pesquisar pela posição");
System.out.println("4 - Listar todos");
System.out.println("5 - Ativar / Inativar");
System.out.println("0 - Sair");
System.out.println("---------------------------------");
System.out.print("Digite a opção desejada: ");
opcaoDigitada = teclado.next();
if (opcaoDigitada.equals("0")) {
System.out.println(" Menu jogador fechado");
break; // sai do loop
} else if (opcaoDigitada.equals("1")) {
cadastrarJogador();
} else if (opcaoDigitada.equals("2")) {
// implementar a opção para editar
} else if (opcaoDigitada.equals("3")) {
// implementar a opção para filtrar jogadores pela posição
} else if (opcaoDigitada.equals("4")) {
listarTodos();
} else if (opcaoDigitada.equals("5")) {
// implementar a opção para ativar / inativar jogador
} else {
System.out.println("Comando inválido!");
}
}
teclado.close();
}
}
alterei o codigo e deu certo só que ele ta salvando desse jeito brendoatacantebre123 tentei da quebra de linha e não consegui e o número da camisa não salva.
Ao invés de usar o FileWriter
, utiliza o PrintWriter
que aí você tem o método println
.
Não fica chamando o flush
o tempo todo, basta chamar uma única vez antes do close
.
O close
faz um flush
automaticamente, então somente ele seria suficiente (ainda mais para um caso simples como esse).
@brendo_melo Na verdade, nem precisaria chamar close
. Desde o Java 7 que podemos usar o try-with-resources, que fecha o arquivo automaticamente. E também não precisa verificar se o arquivo existe, porque o FileWriter
já cria caso não exista:
// try-with-resources, fecha automaticamente o arquivo no final
try (FileWriter writer = new FileWriter("arquivo.txt")) {
Jogador jogador = new Jogador();
System.out.println("Informe o nome: ");
jogador.setNome(teclado.nextLine());
writer.write(jogador.getNome() + "\n"); // acrescenta a quebra de linha
System.out.println("Informe a posição: ");
jogador.setPosicao(teclado.nextLine());
writer.write(jogador.getPosicao() + "\n");
// etc
} catch (IOException e) {
// erro, mostrar mensagem, etc
}
public void editarJogadores(Jogador jogador) {
if (jogador == null) ;
boolean encontrou = false;
for (Jogador c : jogadores) {
if (c.getNome() == jogador.getNome()) {
// mesmo identificador, então atualiza os valores
c.setPosicao(jogador.getPosicao());
c.setNumeroDaCamisa(jogador.getNumeroDaCamisa());
c.setUsuario(jogador.getUsuario());
c.setSenha(jogador.getSenha());
encontrou = true;
break;
}
}
// Caso não encontrar pra atualizar, adiciona na lista como um novo (opcional)
if (!encontrou) {
jogadores.add(jogador);
}
}
public Jogador buscar( String posicao) {
boolean naoFiltrarEmail = (posicao == null || posicao.trim().isEmpty());
for (Jogador c : jogadores) {
if
(c.getPosicao().contains(posicao.trim())) {
return c;
}
}
return null; // não encontrou
}
muito obrigado, eu creie uma clase para editar e outra para buscar e não deu certo o de buscar eu tentei filtar para as posições dos jogadores.
String se compara com o método equals
e não com ==
.