Lendo um .txt e inserindo em uma matriz do tipo int

2 respostas
george15

Olá pessoal, blz ?
Então venho pedir auxílio p/ vcs por que meu código tem um erro e eu não consigo encontrar.

Tenho um arquivo mat1.txt e o conteúdo dele é este :

[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]
[telefone removido]

Estou tentando fazer este conteúdo entrar numa matriz inteira mas, algo está errado :

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class LerArquivo
{
   public static void main(String[] args) throws IOException
   {
	   
	   int l = 11, c = 11;
	   int matriz[][] = new int[l][c];
	   
	   try 
	   {
		  InputStream entrada = new FileInputStream("C:\Users\Jorge Luis\Desktop\mat1.txt");
		  InputStreamReader reader = new InputStreamReader(entrada);
		  BufferedReader buffer = new BufferedReader(reader);
		  String texto = buffer.readLine();
		  
		  
		  while((texto = buffer.readLine()) != null)
		  {  
			  for(int i = 0;i < matriz.length;i++)
			  {
				for(int j = 0; j < matriz.length;j++ )
				{
			       matriz[i][j] = Integer.parseInt(texto);  
				}
			  }   
		  }
		  
		  for(int i = 0;i < matriz.length;i++,System.out.println("\n"))
		  {
			 for(int j = 0; j < matriz.length;j++ )
			 {
			   System.out.print(matriz[i][j]+" ");
			 }
		  }   
		 
		}
	   catch (FileNotFoundException e)
	   {
		  e.getMessage();
	   }
   }
}

O correto seria a minha matriz ser preenchida com os dados do .txt mas, o console me mostra que os dados foram preenchidos errados :

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0

preciso calcular do ponto central da matriz (matriz[5][5]) até aonde se encontram os números 1 ,a fórmula que vou usar é esta :a² = b² +c², e as respostas no console tem que ser: a = 2, a = 5

Alguém poderia dar uma força ? desde já agradeço !

2 Respostas

nel

Oi!

Se é um programa apenas de aprendizado ok, caso contrário, evite usar diretório fixo e principalmente o “\”, “//” ou algo do tipo, busque utilizar o File.separator.
Para buscar o arquivo tente algo como getResourceAsStream() ou System.get(“user.dir”).

Outro detalhe, você faz um readLine fora do for, ou seja, já puxou uma linha e está indo para a próxima, sendo assim, você “pula” a primeira linha, entendeu?
Por fim, creio que o seu problema esteja em como está preenchendo a matriz e não em como está lendo o seu arquivo.

Esqueça a matriz, faça um for simples de leitura do arquivo TXT e imprima cada linha e veja o resultado.
Se estiver correto, terá 100% de certeza que o seu erro está na manipulação dos resultados, entende?

Forte abraço.

george15

Olá nel blz ? Obrigado por responder.
Então o meu problema é exatamente este que você mencionou: Manipular os resultados mas, preciso colocar estes resultados dentro de uma matriz para poder manipular e montar uma lógica de busca. O que eu não consigo é preencher esta matriz ! Mudei o código para resolver o problema de pular a linha :

while(texto != null)  
          {    	
	    	  System.out.println(texto);
              for(int i = 0;i < matriz.length;i++)  
              {  
                for(int j = 0; j < matriz.length;j++ )  
                {	
                   matriz[i][j] = Integer.parseInt(texto);    
                }  
              }  
             texto = buffer.readLine();
          }

Agora ele me mostra claramente o que tem no arquivo mas, não consigo preencher a matriz corretamente ainda.

[telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]
           [telefone removido]

Matriz : 
0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0 

0 0 0 0 0 0 0 0 0 0 0

Realmente é um exercício e pede para calcular a distância entre o ponto central da matriz e os números 1;

Criado 1 de agosto de 2011
Ultima resposta 2 de ago. de 2011
Respostas 2
Participantes 2