Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
RHAguiar

Dúvida referente carregamento de arquivo em JAVA

Pergunta

Boa tarde!

Estou com problema pra finalizar um projeto,

1º eu crio um objeto - ok
2º eu salvo o objeto criado em dat- ok
3º eu carrego os arquivos criados no dat,
4º Eu imprimo todos os objetos armazenados no dat.

As duas últimas partes aparentemente não estão funcionando, porém como não esta apresentando nenhum erro não estou conseguindo identificar o que esta acontecendo.

 

package menu;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Menu {

	public static void main(String[] args) {
		Cilindro cil;
		Cone con;
		EquacaoDoSegundoGrau equ;
		Paralelepipedo par;
		Ponto pon;
		Triangulo tri;

		// Listas pra armazenar os valores
		List<Ponto> guardarPon = new ArrayList<>();
		List<Triangulo> guardarTri = new ArrayList<>();
		List<Cone> guardarCon = new ArrayList<>();
		List<Cilindro> guardarCil = new ArrayList<>();
		List<Paralelepipedo> guardarPar = new ArrayList<>();
		List<EquacaoDoSegundoGrau> guardarEqu = new ArrayList<>();

		//Escolhe qual forma deseja criar
		String opcao = "Sim";
		while ("Sim".equals(opcao) || "sim".equals(opcao) || "SIM".equals(opcao)) {
			int escolha;
			escolha = Integer.parseInt(
					JOptionPane.showInputDialog(null, "O que deseja realizar? \n "
							+ "Digite 1 para carregar os objetos criados \n "                            
							+ "Digite 2 para criar um Ponto\n "
							+ "Digite 3 para criar um Triangulo\n "
							+ "Digite 4 para criar um Cone\n "
							+ "Digite 5 para criar um Cilindo\n "
							+ "Digite 6 para criar um Paralelepipedo\n "
							+ "Digite 7 para criar uma Equação de Segundo grau\n "
							+ "Digite 8 para salvar os objetos criados \n "
							+ "Digite 9 para imprimir os objetos criados"));

			switch (escolha) {
				
				case 1:
					carregar("pon.dat", guardarPon);
					carregar("tri.dat", guardarTri);
					carregar("con.dat", guardarCon);
					carregar("cil.dat", guardarCil);
					carregar("par.dat", guardarPar);
					carregar("equ.dat", guardarEqu); 
					break;
					
				case 2:
					// criar objeto
					pon = new Ponto();
					// guardar ele em uma lista
					guardarPon.add(pon.lerDadosXY());
					break;

				case 3:
					tri = new Triangulo();
					guardarTri.add(tri.lerDadosTriangulo());
					break;

				case 4:
					con = new Cone();
					guardarCon.add(con.lerDadosCone());                
					break;

				case 5:
					cil = new Cilindro();
					guardarCil.add(cil.lerDadosCilindro());
					break;

				case 6:
					par = new Paralelepipedo();
					guardarPar.add(par);
					break;

				case 7:
					equ = new EquacaoDoSegundoGrau();
					guardarEqu.add(equ.lerDadosEquacaoDoSegundoGrau());
					break;
					
				case 8:
					salvar("pon.dat", guardarPon);
					salvar("tri.dat", guardarTri);
					salvar("con.dat", guardarCon);
					salvar("cil.dat", guardarCil);
					salvar("par.dat", guardarPar);
					salvar("equ.dat", guardarEqu);
					break;
					
				case 9:
					// Imprimir todas as formas criadas na tela
					System.out.println("Pontos criados:");
					for (int i = 0; i < guardarPon.size(); i++) {
						try {
							System.out.println(guardarPon.get(i).getX() + " " + guardarPon.get(i).getY());
						} 
						catch (Exception e){
							System.out.println(e.getMessage());
							}
					}
					
					System.out.println("Triângulos criados:");            
					for (int i = 0; i < guardarTri.size(); i++) {
						try {
							System.out.println(guardarTri.get(i).getBase() + " " + guardarTri.get(i).getAltura() + " " + guardarTri.get(i).getArea() + " " + guardarTri.get(i).getPerimetro());
						}
						catch(Exception e){
							System.out.println(e.getMessage());
						}
					}
					
					System.out.println("Cones criados:");                 
					for (int i = 0; i < guardarCon.size(); i++) {
						try{
							System.out.println(guardarCon.get(i).getRaiobase() + " " + guardarCon.get(i).getAltura() + " " + guardarCon.get(i).getPerimetro());
						}
						catch(Exception e){
							System.out.println(e.getMessage());
						}
					}
					
					System.out.println("Cilindros criados:");                   
					for (int i = 0; i < guardarCil.size(); i++) {
						try{
							System.out.println(guardarCil.get(i).getRaio() + " " + guardarCil.get(i).getAltura() + " " + guardarCil.get(i).getAreaTotal() + " " + guardarCil.get(i).getVolume());
						}
						catch(Exception e){
							System.out.println(e.getMessage());
						}
					}

					System.out.println("Paralelepípedos criados:");
					for (int i = 0; i < guardarPar.size(); i++) {
						try{
							System.out.println(guardarPar.get(i).getAltura() + " " + guardarPar.get(i).getLargura() + " " + guardarPar.get(i).getComprimento() + " " + guardarPar.get(i).getVolume());
						}
						catch(Exception e){
							System.out.println(e.getMessage());
						}
					}

					System.out.println("Equações do Segundo Grau criadas:");
					for (int i = 0; i < guardarEqu.size(); i++) {
						try{
							System.out.println(guardarEqu.get(i).getA() + " " + guardarEqu.get(i).getB() + " " + guardarEqu.get(i).getC() + " " + guardarEqu.get(i).getDelta() + " " + guardarEqu.get(i).getX1() + " " + guardarEqu.get(i).getX2());
						}
						catch(Exception e){
							System.out.println(e.getMessage());
						}
					}                   
					break;             

				default:
					System.out.println("Opcão escolhida incorreta, selecione conforme indicador no menu");

			}

			opcao = JOptionPane.showInputDialog("Deseja realizar outra Operação? ( ''Sim'' para continuar)");

		}



	}



	public static boolean salvar (String document, List arl) {
			try{
				FileOutputStream fos = new FileOutputStream(document); 
				ObjectOutputStream out = new ObjectOutputStream(fos);
				for (int i=0; i<arl.size(); i++) {
					out.writeObject( arl.get(i) );
				}
				out.close();
				fos.close();
			} catch(Exception ex){
				   JOptionPane.showMessageDialog(null, "Erro salvando objetos... " + ex.getMessage());
				   return false;
			}
			return true; 
	}

	public static boolean carregar (String document, List arl) {
			FileInputStream fis;
			ObjectInputStream in;       
			try{
				fis = new FileInputStream(document);
				in = new ObjectInputStream(fis);
				arl.clear();
				boolean sair = false; 
				do {                
					 try {
						 Object info = in.readObject();
						 arl.add(info);
					  }
					  catch (EOFException normalEof) { 
						 sair=true;
					  }            
				} while (!sair);            
				in.close();
				fis.close();
			} catch(Exception e){
				JOptionPane.showMessageDialog(null, "Erro carregando objetos... " + e.getMessage());
				return false;
			}
			return true;     
	}  
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

1 resposta a esta questão

Recommended Posts

Não consigo ver qual o erro porque você não disponibilizou o código inteiro.
Na documentação diz que o readObject lança outras exceções: https://docs.oracle.com/javase/8/docs/api/java/io/ObjectInputStream.html#readObject--
Está escrevendo o código no Eclipse? O depurador não ajudou em nada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.