elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Exceptions
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Exceptions  (Leído 1,760 veces)
m@o_614


Desconectado Desconectado

Mensajes: 389


Ver Perfil
Exceptions
« en: 27 Junio 2014, 19:57 pm »

Saludos

tengo el siguiente codigo :

Código
  1. import java.io.File;
  2. import java.io.IOException;
  3. import java.util.Scanner;
  4. import java.io.RandomAccessFile;
  5.  
  6. public class Token {
  7.  
  8. public static void main(String[] args) {
  9. int car;
  10. String nombre,componenteLexico;
  11. Scanner teclado = new Scanner(System.in);
  12. System.out.print("Dame el nombre del archivo: ");
  13. nombre = teclado.nextLine();
  14. teclado.close();
  15. try
  16. {
  17. File archivo = new File(nombre);
  18. RandomAccessFile r = new RandomAccessFile(archivo,"r");
  19. while((car = r.read()) != -1)
  20. {
  21. componenteLexico = Token.leerArchivo(nombre,r);
  22. System.out.print(" "+componenteLexico);
  23. }
  24. r.close();
  25. }
  26. catch(IOException ex)
  27. {
  28. System.out.println("No se pudo abrir archivo");
  29. }
  30.  
  31. }
  32.  
  33. public static String leerArchivo(String nombre,RandomAccessFile r)
  34. {
  35. int car;
  36. char c;
  37. long posicion;
  38. String cadena = null;
  39. StringBuilder sb = new StringBuilder();
  40. try
  41. {
  42. posicion = r.getFilePointer();
  43. r.seek(posicion-1);
  44.    while((car = r.read()) != ' ')
  45.    {
  46.     c = (char)car;
  47.        sb.append(c);
  48.    }
  49.    cadena = sb.toString();
  50. }
  51. catch(IOException ex)
  52. {
  53. System.out.println("No se pudo abrir archivo");
  54. }
  55. return cadena;
  56. }
  57. }
  58.  

lo que hace es leer un archivo e ir guardando e imprimiendo cada una de las palabras que contiene este archivo, el problema es que me arroja una excepcion que dice:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

creo que tiene que ver con que estoy usando mal la clase StringBuilder, pero soy principiante y todavia no se manejar bien las excepciones.

gracias


En línea

Risketo

Desconectado Desconectado

Mensajes: 37



Ver Perfil
Re: Exceptions
« Respuesta #1 en: 30 Junio 2014, 21:51 pm »

Esa excepción se lanza cuando no hay memoria suficiente y el garbage collector no puede dar mas memoria a la máquina virtual de java. Es muy grande el fichero que lees?
No veo nada raro en el uso que le das a StringBuilder, podrías devolver sb.toString() y ahorrarte el String cadena.


« Última modificación: 30 Junio 2014, 21:53 pm por Risketo » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Duda conceptual: exceptions y breakpoints
Dudas Generales
gatecrusher 0 2,289 Último mensaje 15 Septiembre 2010, 09:06 am
por gatecrusher
EXCEPTIONS - FInalizar un programa
Programación C/C++
guero 2 3,091 Último mensaje 15 Julio 2020, 23:05 pm
por Loretz
PE image data directory exceptions
Ingeniería Inversa
FFernandez 0 1,980 Último mensaje 19 Septiembre 2021, 22:47 pm
por FFernandez
Ayuda!! Como se estructura => PE image data directory exceptions en Binario
ASM
FFernandez 0 3,746 Último mensaje 25 Septiembre 2021, 23:30 pm
por FFernandez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines