Foro de elhacker.net

Programación => Java => Mensaje iniciado por: makarov en 24 Agosto 2017, 18:28 pm



Título: Leer txt y resaltar o cambiar a mayuscula palabras buscadas en el archivo.
Publicado por: makarov en 24 Agosto 2017, 18:28 pm
Buen dia.
El programa que intento hacer es la lectura de un archivo txt. el programa le pregunta que sub palabra desa buscar dentro del archivo. busca las coincidencias y cambia la palabra o sub palabra buscada por mayuscula.
El programa lee el txt, encuentra las coincidencias pero al escribir el archivo para cambiar a mayuscula las coincidencias encontradas me sale error. Espero me ayuden. Dejo el codeigo para que miren.  Que otro codigo proponen?
GRACIAS

Código
  1. public class metodos extends main {
  2. public static String patron="";
  3. static Scanner leer = new Scanner(System.in);
  4. public static void leerTxt() throws IOException {
  5. BufferedReader bufferedReader = new BufferedReader(new FileReader("src\\cadena.txt"));            
  6.        String texto = "";
  7.  
  8. System.out.println("¿ Que cadena desea buscar ?");
  9. patron = leer.next();
  10. try {
  11. while(( texto=bufferedReader.readLine())!=null){
  12. System.out.println(texto);
  13. System.out.println("buscando....");
  14. Pattern regex = Pattern.compile(patron);
  15. Matcher match = regex.matcher(texto);
  16. int count=0;        
  17. while(match.find()){
  18. count ++; //Recorremos el archivo linea a linea e imprimimos
  19. System.out.println("Encontrado "+match.group() ); // las coincidencias.
  20. }
  21. System.out.println("se encontraron "+count+" coincidencias");
  22. }
  23. } catch (FileNotFoundException e) {e.printStackTrace();
  24. }
  25.  
  26. File f =new File("src\\cadenadena.txt");
  27. bw.write(texto.replaceAll(patron, patron.toUpperCase()));
  28. }
  29. }
   texto : guarda las lineas del archivo y las imprime.
        patron : es la palabra o subpalabra que va a buscar.
La salida que arroja el programa es el siguiente:

Leyendo Texto...
¿ Que cadena desea buscar ?
i
..........Lectura del archivo.............
Encontrado i
Encontrado i
   .
   .
   .
se encontraron 28 coincidencias
Exception in thread "main" java.lang.NullPointerException
   at leertxt.metodos.leerTxt(metodos.java:36)
   at leertxt.main.main(main.java:10)
la linea 36 de esta clase es :
bw.write(texto.replaceAll(patron, patron.toUpperCase()));
la linea 10 del main.java es :
metodos.leerTxt();


Título: Re: Leer txt y resaltar o cambiar a mayuscula palabras buscadas en el archivo.
Publicado por: ivancea96 en 30 Agosto 2017, 18:06 pm
Es un poco tarde, pero bueno:
Utilizas: texto.replaceAll
Y arriba tienes:
Código
  1. while(( texto=bufferedReader.readLine())!=null)
Por tanto, texto va a ser null cuando salga del bucle.