import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import javax.swing.JOptionPane; public class BuscarDentroDeArchivo { public static void main(String aeg[]) { String arregloArchivo []; File archivo = null; FileReader lectorArchivo = null; BufferedReader lectorBuffer = null; String capturaDireccion = JOptionPane.showInputDialog(null,"Indique la direccion donde se encuentra el archivo"); archivo = new File(capturaDireccion); String textoCapturado = ""; String buscarCadena = ""; if(archivo.isFile()) { try { lectorArchivo = new FileReader(archivo); lectorBuffer = new BufferedReader(lectorArchivo); String lineaLeida; while((lineaLeida = lectorBuffer.readLine()) != null) { textoCapturado = textoCapturado + lineaLeida; } arregloArchivo = textoCapturado.split(" "); JOptionPane.showMessageDialog(null, "Se encontraron: "+ arregloArchivo.length +" palabras.","Resultado de el conteo" ,JOptionPane.PLAIN_MESSAGE); buscarCadena = JOptionPane.showInputDialog(null,"Ingrese el texto que desea buscar","Buscar texto",JOptionPane.QUESTION_MESSAGE); contarPalabras(buscarCadena,textoCapturado); } catch(Exception ex) { ex.printStackTrace(); } finally { try { if(null != lectorArchivo) { lectorArchivo.close(); } } catch(Exception e) { e.printStackTrace(); } } } else { JOptionPane.showMessageDialog(null, "La direccion introducida no es de un archivo!","Error al intentar abrir el archivo", JOptionPane.ERROR_MESSAGE); } } public static void contarPalabras(String textoABuscar, String texto) { int contador = 0; while (texto.indexOf(textoABuscar) > -1) { texto = texto.substring(texto.indexOf( textoABuscar)+textoABuscar.length(),texto.length()); contador++; } JOptionPane.showMessageDialog(null,"La palabra "+ textoABuscar+ " aparece: "+ contador +" veces.","Resultado de la busqueda",JOptionPane.INFORMATION_MESSAGE); } }