Boa noite, estou com uma dificuldade referente a leitura de dados de um arquivo txt, como posso implementar para que o arquivo caia no meu algorítimo ?
Segue meu algoritimo, mas o resultado está se divergindo do que realmente era pra ser
packagewarshall;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;/** * * @author Luiz Almeida Júnior */publicclassWarshall{staticvoidfechamento(booleanma[][],booleanmf[][]){inti,j,k;// inicialização da matriz de fechamentofor(i=0;i<ma.length;i++){for(j=0;j<ma.length;j++){mf[i][j]=ma[i][j];}}// algoritmo de Warshallfor(k=0;k<ma.length;k++){for(i=0;i<ma.length;i++){if(mf[i][k]){for(j=0;j<ma.length;j++){mf[i][j]=mf[i][j]||mf[k][j];}}}}}staticvoidimprime(booleanm[][]){inti,j;for(i=0;i<m.length;i++){for(j=0;j<m.length;j++){System.out.print(m[i][j]+"\t");}System.out.println("");}System.out.println();}publicstaticvoidmain(String[]args)throwsIOException{booleanma[][]=newboolean[3][3];booleanmf[][]=newboolean[3][3];try{InputStreamentrada=newFileInputStream("C:\\Users\\Luiz Almeida Júnior\\Desktop\\Mat.txt");InputStreamReaderreader=newInputStreamReader(entrada);BufferedReaderbuffer=newBufferedReader(reader);Stringtexto;while((texto=buffer.readLine())!=null){System.out.println(texto);}}catch(FileNotFoundExceptione){e.getMessage();}imprime(ma);fechamento(ma,mf);imprime(mf);}}
O que você quer é pegar os valores do arquivo texto e colocar na variável ma[][], é isso?
Faltou basicamente você pegar os valores, fazer as devidas comparações e atribuições, se entendi o que você precisa. Algo mais ou menos assim:
publicstaticvoidmain(String[]args)throwsIOException{booleanma[][]=newboolean[3][3];booleanmf[][]=newboolean[3][3];inti=0,j=0;try{InputStreamentrada=newFileInputStream("C:\\Users\\Luiz Almeida Júnior\\Desktop\\Mat.txt");InputStreamReaderreader=newInputStreamReader(entrada);BufferedReaderbuffer=newBufferedReader(reader);Stringtexto;while((texto=buffer.readLine())!=null){System.out.println(texto);// pegando os valoresma[i][j]=(texto.contains("true"));i++;if(i==3){j++;i=0;}}}catch(FileNotFoundExceptione){e.getMessage();}imprime(ma);fechamento(ma,mf);imprime(mf);}
É claro, é um jeito meio "bruto" de fazer a coisa. Não é muito flexível (não permite, por exemplo, uma matriz diferente de 3x3). Mas deve clarear sua ideia quanto a esse aspecto. Qualquer coisa, pergunte ou explique melhor o que deseja.
Abraço.
juninhoall
TerraSkilll:
O que você quer é pegar os valores do arquivo texto e colocar na variável ma[][], é isso?
Faltou basicamente você pegar os valores, fazer as devidas comparações e atribuições, se entendi o que você precisa. Algo mais ou menos assim:
publicstaticvoidmain(String[]args)throwsIOException{booleanma[][]=newboolean[3][3];booleanmf[][]=newboolean[3][3];inti=0,j=0;try{InputStreamentrada=newFileInputStream("C:\\Users\\Luiz Almeida Júnior\\Desktop\\Mat.txt");InputStreamReaderreader=newInputStreamReader(entrada);BufferedReaderbuffer=newBufferedReader(reader);Stringtexto;while((texto=buffer.readLine())!=null){System.out.println(texto);// pegando os valoresma[i][j]=(texto.contains("true"));i++;if(i==3){j++;i=0;}}}catch(FileNotFoundExceptione){e.getMessage();}imprime(ma);fechamento(ma,mf);imprime(mf);}
É claro, é um jeito meio "bruto" de fazer a coisa. Não é muito flexível (não permite, por exemplo, uma matriz diferente de 3x3). Mas deve clarear sua ideia quanto a esse aspecto. Qualquer coisa, pergunte ou explique melhor o que deseja.
Abraço.
Bah, muito obrigado pela ajuda, clareou sim. Muito obrigado mesmo,
juninhoall
TerraSkilll:
Outra forma de implementação seria,
packageOutraForma;importjava.io.BufferedReader;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;/** * * @author Luiz Almeida Júnior */publicclassOutraForma{staticvoidfechamento(booleanma[][],booleanmf[][]){inti,j,k;// inicialização da matriz de fechamentofor(i=0;i<ma.length;i++){for(j=0;j<ma.length;j++){mf[i][j]=ma[i][j];}}// algoritmo de Warshallfor(k=0;k<ma.length;k++){for(i=0;i<ma.length;i++){if(mf[i][k]){for(j=0;j<ma.length;j++){mf[i][j]=mf[i][j]||mf[k][j];}}}}}staticvoidimprime(booleanm[][]){inti,j;for(i=0;i<m.length;i++){for(j=0;j<m.length;j++){System.out.print(m[i][j]+"\t");}System.out.println("");}System.out.println();}publicstaticvoidmain(String[]args)throwsIOException{booleanma[][]=newboolean[5][5];booleanmf[][]=newboolean[5][5];try{inti,j=0;InputStreamentrada=newFileInputStream("mat.txt");InputStreamReaderreader=newInputStreamReader(entrada);BufferedReaderbuffer=newBufferedReader(reader);Stringtexto;while((texto=buffer.readLine())!=null){intt=texto.length();for(i=0;i<t;i++){if("1".equals(texto.substring(i,i+1))){ma[j][i]=true;}else{ma[j][i]=false;}}j++;}}catch(FileNotFoundExceptione){e.getMessage();}imprime(ma);fechamento(ma,mf);imprime(mf);}}Meuprofessormedeuumaajudanessehoje,efezesse,graçasavocêconseguiintendercomofaria,obrigadomesmo.