Escenario:¿Está lanzando una operación costosa?
- estoy analizar un (archivo de caracteres) del archivo grande. Por ejemplo, un archivo .csv (no es exactamente mi caso)
- No puedo guardar todo el archivo en la memoria. Entonces debo implementar una estrategia de amortiguación.
- Quiero construir un controlador genérico que mantenga un número constante de líneas en la memoria (como cadenas). Este manejador busca otras líneas si es necesario mientras elimina las líneas innecesarias.
- Sobre este controlador construiré un analizador sintáctico que transformará las líneas en objetos Java y operará cambios en esos objetos. Una vez que se realizan los cambios (actualice algunos campos en los objetos) persista los cambios en el archivo.
¿Debo:
- En lugar de mantener el búfer como una matriz de cadenas, debo mantener el buffer directamente como objetos (hacer un solo molde)? o ...
- Mantenga el búfer como líneas, cada vez que necesite operar en el búfer, envíe la información al objeto correcto, realice los cambios, persista los cambios en el archivo. Las operaciones secuenciales necesitarán moldes suplementarios.
Tendré que mantener las cosas simples. ¿Alguna sugerencia?
¿Cómo está exactamente transfiriendo cadenas a otros tipos de datos? –
¿estás hablando de casting o de análisis sintáctico? – fortran
Es más complicado. No es exactamente un elenco de/a String, hay una interfaz de Fila y más implementaciones. Cada implementación es como un contenedor, que devuelve un objeto. Ese objeto debe ser lanzado. Si tengo que hacer algunos cambios en una Fila específica, se necesitan algunos moldes en el mecanismo interno. –