Lendou um arquivo qualquer e exibindo linha, caracteres e seu conteúdo
4 respostas
P
paulo1981
1 - Queria fazer o código usando um JOptionPane se possivel ou outro componente gráfico
2 - Escolher o arquivo em uma arvore de diretorios
3 - Não consegui contar quantas palavras
4 - Não consegui contar quantos caracteres tinha no arquivo
Se alguém puder me ajudar desde já agradesso sou iniciante e não seu criar muita coisa em java
{
BufferedReader arquivo = new BufferedReader(new java.io.FileReader(“arquivo.txt”));
Stringlinha="";intnumeroCaracteres=0;inttotalPalavras=0;while(arquivo.ready()){try{linha+=arquivo.readLine();totalPalavras+=linha.length();numeroCaracteres+=linha.length();}catch(Exceptionex){ex.printStackTrace();}System.out.println("Strings concatenadas do arquivo: "+linha);System.out.println("Total de palavras do arquivo: "+totalPalavras);System.out.println("Total de caracteres do arquivo : "+numeroCaracteres);}
Finalmente, acostume-se com a convenção! Nomes de classe com a primeira letra maiúscula!
ViniGodoy
Aqui está o seu código corrigido e comentado.
Para o seu próprio bem, entenda, não só copie, ok?
Note que seu algoritmo estava praticamente certo. Eu comentei os locais onde alterei o código e o porque da alteração.
Embora o tamanho do código assuste, ele está praticamente igual ao seu. Só os comentários e os imports deixaram ele tão grande. ;)
importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjavax.swing.JFileChooser;importjavax.swing.JOptionPane;publicclassLeArquivo{publicstaticvoidmain(Stringargs[])throwsException{//Primeiramente, vamos usar o JFileChooser para escolher o arquivoJFileChooserfileChooser=newJFileChooser();if(fileChooser.showOpenDialog(null)==JFileChooser.CANCEL_OPTION){System.exit(0);}Filefile=fileChooser.getSelectedFile();//Agora faremos a leitura do arquivoBufferedReaderarquivo=newBufferedReader(newFileReader(file));Stringlinha="";intnumeroCaracteres=0;inttotalPalavras=0;inttotalLinhas=0;while(arquivo.ready()){//Lemos a linha. //Como só nos interessa contar a linha atual, //usamos o operador = ao invés de +=. linha=arquivo.readLine();totalLinhas++;//Imprimimos a linha no console. //Todo conteúdo pode ser grande para ficar num JOptionPane.System.out.println(linha);//Somamos o número de caracteresnumeroCaracteres+=linha.length();//O split é um comando que separa as palavras de uma string//de acordo com um caractere. Ele gera um array com as //palavras separadas.//Por exemplo, um split("i") na String "Vinicius", geraria//um array contendo ["V", "n", "c", "us"].//Para contar as palavras, vamos fazer um split nos espaços//e somar o tamanho do array.//Vamos fazer isso também só para linhas que não estão em //branco. É isso que o if testa.if(linha.trim().length()>0){totalPalavras+=linha.split("\s").length;}}//Agora exibimos o resultadoStringBuildersb=newStringBuilder("<HTML><BODY>Resultado da contagem");sb.append("<p><b>Quantidade de linhas:</b>").append(totalLinhas);sb.append("<br><b>Quantidade de palavras:</b> ").append(totalPalavras);sb.append("<br><b>Quantidade de caracteres: </b> ").append(numeroCaracteres);sb.append("</BODY></HTML>");JOptionPane.showMessageDialog(null,sb.toString());}}