[b]Ola gostaria de saber se tem algum comando no Java com o qual eu possa ler todos os arquivos .TXT de um diretorio ?
por exemplo tenho que procurar em todos os arquivos .txt de uma pasta uma palavra especifica, sei como buscar em um arquivo especifico ,mas tenho que olhar em todos, gostaria de uma ajuda, pois no CMD tem um comando curinga *.txt que busca todos os arquivos com essa extensao ,existe algo similar no java tanto para arquivos como para diretorios?[/b]
Poderia ter usado regex ou classe Scanner, mas está melhor assim , fica mais limpo o código
L
lordabel
Senao for pedir demais tem como me mostrar com a classe Scanner ?
L
lsouza13
A primeira coisa, vc sabe o que é um programa em java? Como compilar e executar?
Sabe também como ler os arquivos do diretorio?
A galera ta vindo no forum pedindo codigo pronto pra entregar para o professor.
Vc procurou no forum como ler arquivos de um diretorio, primeiro?
L
lordabel
antes de voce vir aqui e falar merda ,deveria prestar mais atençao nao to pedindo pra me entregar codigo pronto nao ,porque como ja havia dito consigo ler um arquivo queria saber como ler mais de um ;
e fiquei curioso com aplicaçao com a classe Scanner .
L
lsouza13
Excelente kra.
Então posta o código que vc ja tem. E a galera vai te ajudando.
Pode ser?
L
lordabel
Preciso de ajuda nesse codigo aqui nao cosigo arrumar uma condiçao para fazer a busca de uma string especifica em todos sub diretorios de uma pasta ,porem consigo buscar a ocorrencia dessa string em uma pasta especifica da uma olhada no codigo abaixo .
packageLista;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;publicclassBuscaString{publicstaticvoidbuscarString(Stringcaminho,Stringpalavra)throwsIOException{caminho+="\\";Filefile=newFile(caminho);for(Stringindice:file.list()){if(indice.endsWith(".txt")){FileReaderfileReader=newFileReader(caminho+indice);BufferedReaderbuffer=newBufferedReader(fileReader);Stringlinha=null;do{linha=buffer.readLine();if(linha!=null){if(linha.indexOf(palavra)>=0){System.out.println("A palavra foi encontrada :"+linha);System.out.println("No diretorio :"+indice);}}}while(linha!=null);buffer.close();}}}publicstaticvoidBuscaSubPasta(FilecaminhoInicio,intindice)throwsIOException{indice+=indice;if(caminhoInicio.exists()){File[]diretorios=caminhoInicio.listFiles();for(inti=0;i<diretorios.length;i++){if(diretorios[i].isDirectory()){BuscaSubPasta(diretorios[i],indice+1);}else{char[]arquivo=newchar[indice];for(intj=0;j<indice;j++){arquivo[j]=' ';}System.out.println(newString(arquivo)+diretorios[i].getName());}}}}publicstaticvoidmain(String[]args)throwsIOException{BuscaSubPasta(newFile("B:\\lista\\"),0);// buscarString("B:\\lista\\", "rafael");}}
L
lsouza13
packageteste;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileReader;importjava.io.IOException;publicclassBuscaTxt{publicstaticvoidbuscarString(Stringarquivo,Stringpalavra)throwsIOException{Filefile=newFile(arquivo);if(arquivo.endsWith(".txt")){FileReaderfileReader=newFileReader(file);BufferedReaderbuffer=newBufferedReader(fileReader);Stringlinha=null;do{linha=buffer.readLine();if(linha!=null){if(linha.indexOf(palavra)>=0){System.out.println("A palavra "+palavra+" foi encontrada: "+linha);System.out.println("No arquivo:"+arquivo);System.out.println();}}}while(linha!=null);buffer.close();}}publicstaticvoidbusca(Stringcaminho,Stringpalavra)throwsIOException{Filefile=newFile(caminho);for(Stringindice:file.list()){Filef=newFile(caminho+indice);if(f.isDirectory()){busca(f.getPath()+"\\",palavra);}else{buscarString(f.getPath(),palavra);}}}publicstaticvoidmain(String[]args){try{busca("D:\\PastaJava\\","teste");}catch(IOExceptione){e.printStackTrace();}}}
B
BTO
Boa noite Lord,
O que havia me pedido, queria ver como funciona a classe Scanner…
publicstaticList<String>buscarTxt2(Stringpath){List<String>result=newArrayList<String>();Filefile=newFile(path);String[]paths=file.list();Scannerscanner=newScanner(Arrays.toString(paths).replaceAll("\\[","").replaceAll("\\]","").replaceAll(","," "));//cria uma expressão regular p/achar string correspondente//nesta expressao está, o que for caracter acompanhado de .txtscanner.findInLine("\\w.\\.txt");while(scanner.hasNext()){result.add(scanner.next());}returnresult;}