Criar um objeto a partir de arquivo;

Olá pessoal, sou nova aqui na plataforma e também em programação java e peço a ajuda de vocês no meu projeto. Tenho que criar um tabuleiro, com cerca de 40 casas e eu não queria fazer 40 linhas de código dentro do construtor.
possuo esse arrayList:

this.cartasTabuleiro = new ArrayList<>();

this.cartasTabuleiro.add(new Propriedades(“Av. Nossa Senhora de Copacabana”, “rosa”, 60, 2, 10, 30, 90, 160, 250, 30, 50));
this.cartasTabuleiro.add(new Companhia(“Companhia Ferroviaria”, 200, 100, 50));
this.cartasTabuleiro.add(new Propriedades(“Av. Brigadeiro Faria lima”, “azul”, 240, 20, 100, 300, 750, 925, 1100, 120, 150));
this.cartasTabuleiro.add(new Companhia(“Companhia de Viação”, 200, 100, 50));

Se for possível, me ajudem a colocar isso em um arquivo para que ele adicione na lista do tabuleiro, até porque existem outros trechos de código que também precisam estar em arquivos e eu não estou conseguindo fazer com que sejam adicionados. Desde já, agradeço a ajuda de vocês.

O projeto é sobre o jogo Banco Imobiliário, na disciplina de POO.

Não precisa

public Construtor(){
     metodoQueCriaAsCasasDoTabuleiro();
}

E, no metodoQueCriaAsCasasDoTabuleiro, você coloca o que precisa para ter todas as 40 casas.

public void metodoQueCriaAsCasasDoTabuleiro(){
     //Faz aqui o que precisa.
}

O problema é que o professor quer que a gente leia isso de um arquivo. O construtor já tinha sido criado dessa forma, mas ele quer deixar o código “limpo”.

Mande os arquivos para meu email, vou ve se faço pra vc jonas.barros.etb@gmail.com

Really? E isso vai ajudar de quê no aprendizado dela?

Ah, entendi. Engraçado que isso não apareceu no tópico original.
Pois bem, você tem o arquivo? Se não, como pensa em criar o mesmo?
Eu sugiro criar o mesmo como um CSV, separando cada valor por vírgula e cada linha representando um elemento específico.

Não sou muito boa com Java, nem pra explicar direito também, rs. Peço até desculpas por isso, mas ainda não sei como faço pra manipular esses arquivos. Para tentar deixar mais explícito, minha classe tabuleiro está da seguinte forma:

 package br.ufpb.sisBanco_Imobiliario;
import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Tabuleiro {

    private static Tabuleiro tabuleiro = null;
    private ArrayList cartaTabuleiro;

    private Tabuleiro() {
        SorteOuReves sorte = SorteOuReves.getSorteOuReves();
        this.cartaTabuleiro =  new ArrayList<>();
        //Cria a lista de peças do tabuleiro.
        this.cartaTabuleiro.add(new NormaisCartas("Ponto de partida"));
        this.cartaTabuleiro.add(new Propriedades("Leblon", "rosa", 100, 6, 30, 90, 270, 400, 500, 50, 50));
        this.cartaTabuleiro.add(sorte);
        this.cartaTabuleiro.add(new Propriedades("Av.Presidente Vargas", "rosa", 60, 2, 10, 30, 90, 160, 250, 30, 50));
        this.cartaTabuleiro.add(new Propriedades("Av. Nossa Senhora de Copacabana", "rosa", 60, 2, 10, 30, 90, 160, 250, 30, 50));
        this.cartaTabuleiro.add(new Companhia("Companhia Ferroviaria", 200, 100, 50));
        this.cartaTabuleiro.add(new Propriedades("Av. Brigadeiro Faria lima", "azul", 240, 20, 100, 300, 750, 925, 1100, 120, 150));
        this.cartaTabuleiro.add(new Companhia("Companhia de Viação", 200, 100, 50));
        this.cartaTabuleiro.add(new Propriedades("Av. Rebouças", "azul", 220, 18, 90, 250, 700, 875, 1050, 110, 150));
        this.cartaTabuleiro.add(new Propriedades("Av. 9 de Julho", "azul", 220, 18, 90, 250, 700, 875, 1050, 110, 150));
        this.cartaTabuleiro.add(new Prisao("Prisão(visitante)"));
        this.cartaTabuleiro.add(new Propriedades("Av. Europa", "roxo", 200, 16, 80, 220, 600, 800, 1000, 100, 100));
        this.cartaTabuleiro.add(sorte);
        this.cartaTabuleiro.add(new Propriedades("Rua Augusta", "roxo", 180, 14, 70, 200, 550, 750, 950, 90, 100));
        this.cartaTabuleiro.add(new Propriedades("Av. Pacaembu", "roxo", 180, 14, 70, 200, 550, 750, 950, 90, 100));
        this.cartaTabuleiro.add(new Companhia("Companhia de Táxi", 150, 75, 40));
        this.cartaTabuleiro.add(sorte);
        this.cartaTabuleiro.add(new Propriedades("Interlagos", "laranja", 350, 35, 175, 500, 1100, 1300, 1500, 175, 200));
        this.cartaTabuleiro.add(new NormaisCartas("Lucros e Dividendos"));
        this.cartaTabuleiro.add(new Propriedades("Morumbi", "laranja", 400, 50, 200, 600, 1400, 1700, 2000, 200, 200));
        this.cartaTabuleiro.add(new NormaisCartas("Parada livre"));
        this.cartaTabuleiro.add(new Propriedades("Flamengo", "vermelho", 120, 8, 40, 100, 300, 450, 600, 60, 50));
        this.cartaTabuleiro.add(sorte);
        this.cartaTabuleiro.add(new Propriedades("Botafogo", "vermelho", 100, 6, 30, 90, 270, 400, 500, 50, 50));
        this.cartaTabuleiro.add(new NormaisCartas("Imposto de Renda"));
        this.cartaTabuleiro.add(new Companhia("Companhia de Navegação", 150, 75, 40));
        this.cartaTabuleiro.add(new Propriedades("Av. Brasil", "amarelo", 160, 12, 60, 180, 500, 700, 900, 80, 100));
        this.cartaTabuleiro.add(sorte);
        this.cartaTabuleiro.add(new Propriedades("Av. Paulista", "amarelo", 140, 10, 50, 150, 450, 625, 750, 70, 100));
        this.cartaTabuleiro.add(new Propriedades("Jardim Europa", "amarelo", 140, 12, 60, 180, 500, 700, 900, 80, 100));
        this.cartaTabuleiro.add(new Prisao("Vá para a prisão"));
        this.cartaTabuleiro.add(new Propriedades("Copacabana", "verde", 260, 22, 110, 330, 800, 975, 1150, 130, 150));
        this.cartaTabuleiro.add(new Companhia("Companhia de Aviação", 200, 100, 50));
        this.cartaTabuleiro.add(new Propriedades("Av. Vieira Souto", "verde", 320, 28, 150, 450, 1000, 1200, 1400, 160, 200));
        this.cartaTabuleiro.add(new Propriedades("Av. Atlântica", "verde", 300, 26, 130, 390, 900, 1100, 1275, 150, 200));
        this.cartaTabuleiro.add(new Companhia("Companhia de Táxi Aéreo", 200, 100, 50));
        this.cartaTabuleiro.add(new Propriedades("Ipanema", "verde", 300, 26, 130, 390, 900, 1100, 1275, 150, 200));
        this.cartaTabuleiro.add(sorte);
        this.cartaTabuleiro.add(new Propriedades("Jardim Paulista", "azul escuro", 280, 24, 120, 360, 850, 1025, 1200, 140, 150));
        this.cartaTabuleiro.add(new Propriedades("Brooklin", "azul escuro", 260, 22, 110, 330, 800, 975, 1150, 130, 150));

    }
    public static Tabuleiro getTabuleiro() {
        if(tabuleiro == null){
            tabuleiro = new Tabuleiro();
        }
        return tabuleiro;
    }

    //Método que retorna toda a lista de cartas.
    public ArrayList getcartaTabuleiro() {
        return this.cartaTabuleiro;
    }

}

Eu estava tentando criar um .txt e adicionar no arrayList, porém, não sei fazer a manipulação de tais arquivos, e também não sei como posso fazer isso. Dentro do jogo, existem outras partes que eu deveria aplicar isso, para melhorar o code.

Você tem vários tipos diferentes de objetos, cada qual com suas características.
Minha sugestão é que você comece separando o que é SorteOuReves, depois, o que é NormaisCartas, depois Propriedades e assim por diante. Defina o que cada um precisa para ser criado.

1 curtida