Foros del Web » Programación para mayores de 30 ;) » Java »

Gran duda con BufferedReader

Estas en el tema de Gran duda con BufferedReader en el foro de Java en Foros del Web. Hola de nuevo..lo que quiero saber ahora ya que no he podido solucionar el posteo de mas abajo... (ya que se me ocurrio otra idea)... ...
  #1 (permalink)  
Antiguo 29/05/2007, 16:36
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Gran duda con BufferedReader

Hola de nuevo..lo que quiero saber ahora ya que no he podido solucionar el posteo de mas abajo... (ya que se me ocurrio otra idea)... es saber si efectivamente la instruccion "BufferedReader" almacena la informacion en Buffer (entiendase en memoria ¿o no?)...la pregunta es porque al ejecutar las instruciones de mas abajo... se me pierden los datos de br... porque pasa esto??

br = new BufferedReader(new FileReader(archivo)); //almacena en la variable br los datos de archivo

FileWriter fw = new FileWriter(archivo); //crea en fw un nuevo archivo

desde este momento si yo deseo recorrer la variable br por medio de:

while ((str = br.readLine())!= null)

resulta que br ya no contiene nada ¿porque?.. ¿no se supone que lo de br esta en memoria...???


este es el codigo modificado con respecto al post anterior:

File archivo = new File("C:/Documents and Settings/Administrador/Escritorio/TXT/Configuration");

String str;
String strup = null;
String proceso = "XG_ROUTER";
BufferedReader br;
BufferedReader br1;

br = new BufferedReader(new FileReader(archivo));
FileWriter fw = new FileWriter(archivo);
PrintWriter escritor = new PrintWriter(fw);

if (archivo.canRead())
{
while ((str = br.readLine())!= null)
{
if (str.contains("processList") && !(str.contains("#")))
{
StringTokenizer listaprocesos = new StringTokenizer((str), "=");
while (listaprocesos.hasMoreTokens())
{
strup = listaprocesos.nextToken();
}
proceso = proceso.concat(";");
strup = strup.replace(proceso, "");
}
escritor.println(br.readLine());
}
}
br.close();
fw.close();
}

la idea es que lea cada linea de br..si cumple cierta condicion haga un proceso, aplique los cambios y grabe los nuevos cambios.. luego siga leyendo y grabando hasta el final de archivo....


si alguien sabe algo al respecto y pueda opinar/ayudar se agradecera...

Saludos...


P.D. chuta que lento el foro...
No se si no estan dispuestos a ayudar o simplemente no quieren (o tal vez no se atreven)... bueno... sera...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #2 (permalink)  
Antiguo 30/05/2007, 00:25
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Gran duda con BufferedReader

Cita:
Iniciado por el mago de oz Ver Mensaje
es saber si efectivamente la instruccion "BufferedReader" almacena la informacion en Buffer (entiendase en memoria ¿o no?)
No, crear un BufferedReader no guarda en memoria el contenido del fichero.

Cita:
Iniciado por el mago de oz Ver Mensaje
P.D. chuta que lento el foro...
No se si no estan dispuestos a ayudar o simplemente no quieren (o tal vez no se atreven)... bueno... sera...
Quizá será que el foro es voluntario, no remunerado, que hay diferencias horarias y que la gente a veces tiene otras cosas que hacer que estar atentos a si pones un mensaje para reponderlo rápidamente. Pequeñeces como trabajos, familia... etc.
  #3 (permalink)  
Antiguo 30/05/2007, 07:50
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
De acuerdo Re: Gran duda con BufferedReader

GreenEyed... a lo mejor tienes razon... pero lo que digo no lo digo yo..si no que se entiende de muchos articulos que encuentras en internet e incluso en la pagina de java... que es mas o menos asi:

En otras palabras, un BufferedReader mejora el rendimiento de un objeto Reader asociado proporcionando un buffer de "almacenamiento temporal". Reduciendo el número de veces que se debe acceder al disco o a la red.

Si hoy..almacenamiento temporal ya no es "memoria"...bueno...

Con respecto a lo segundo... de que hay diferencias de horario!!! que no me habia dado cuenta (jaja)... que es voluntario!!! (jajaja) .. tampoco...di algo nuevo.. a lo que me referia es con respecto a la participacion de otros subforos del mismo foros del web... nada mas...

y si te interesa ayudar... opina sobre el problema a solucionar...

De todos modos gracias por la ayuda con la descripcion de BufferedReader.. al menos ya se que no es lo que dice ser...

Gracias..
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #4 (permalink)  
Antiguo 30/05/2007, 09:18
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Gran duda con BufferedReader

Hola,
La descripción de BufferedReader es correcta: Eso es lo que hace. No veo por ningún lado que te diga que creando un BufferedReader te vaya a leer todo el fichero y te lo vaya a guardar en memoria. Si miras cualquier ejemplo de BufferedReader veras que lo unico que hace es mejorar el rendimiento de un Reader evitando accesos a disco cuando lees. Pero sigues teniendo que leer el fichero y sigue habiendo accesos a disco si no cabe todo de una vez en el buffer.

Respecto a lo demas, lo siento si no te parece bien que opine sobre tus comentarios del funcionamiento del foro. Sólo quería darte otra perspectiva para que puedas aprovechar mejor el foro, ya que con esos comentarios sólo consigues que la gente te conteste aun menos. Pero tranquilo que no te molestaré más .
  #5 (permalink)  
Antiguo 30/05/2007, 09:37
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
Pregunta Re: Gran duda con BufferedReader

Bueno..si te molesto lo que dije.. disculpa... me sonaste un poco a un tal MAXEXTREMME del foro de VB..que lo unico que hace es tirar mas basura... y lo de lo lento de este foro es pk es verdad... pero bueno...mejor no opinar de apreciaciones (¿asi se escribe?)...

Cita:
Si miras cualquier ejemplo de BufferedReader veras que lo unico que hace es mejorar el rendimiento de un Reader evitando accesos a disco cuando lees.
¿Evitando acceso a disco cuando lees?? si evita el acceso al disco para leer ¿que lee? ¿memoria? .. y si es asi.. cual es la capacidad del buffer ...mi archivo varia entre 1 y 2.5 KB.

Con respecto al tema .. como solucionarias el problema ... ya que ambos tipos de acceso son unidireccionales por lo tanto no puedo hacer ambas operaciones sobre el archivo sin que pase algo que no quiero... solucioné el problema pasando los datos a otro archivo y luego (una vez procesados) pasarlos al archivo original... funciona!!! pero como solucion informatica es simplemente decadente...

Alguna opinion al respecto...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
  #6 (permalink)  
Antiguo 30/05/2007, 11:06
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Re: Gran duda con BufferedReader

Te evita algunos accesos a disco, no todos. Básicamente, lo que hace es leer de disco más de lo que tu lees con un read, y así durante varios "read" vas leyendo de su buffer. Cuando está vacio vuelve a leer de disco etc. etc. Dependiendo del tamaño del buffer y del tamaño que leas con el read, leeras mas o menos veces de disco. El tamaño por defecto eran 8K, pero como no es parte del API público, puede cambiar.

En cuanto al problema en si, en Java sólo hay un tipo de acceso a ficheros que permita el acceso de lectura/escritura simultaneo, y es usando un RandomAccessFile. Todos los demas medios de acceso son unidireccionales y no puedes leer y escribir a la vez, así que hay usar almacenamientos intermedios (memoria, un fichero temporal...).

S!
  #7 (permalink)  
Antiguo 30/05/2007, 12:51
Avatar de el mago de oz  
Fecha de Ingreso: octubre-2005
Mensajes: 192
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Gran duda con BufferedReader

Excelente... esa era la respuesta que buscaba... la clase/metodo/instruccion que me permitiera eso.. ya que es lo primero que hago con Java y hay algunas cosas que ni se me ocurren como hacerlas...

Gracias...
__________________
"No a las dictaduras, no a la impunidad, no al comercio injusto que explota al menor de edad. Sí a las autocracias, sí a la libertad, el tercer mundo va a estallar."
Finisterra MAGO DE OZ
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:32.