Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Kerber0 en 28 Noviembre 2008, 02:04 am



Título: Conocer buffer del flujo de datos (FileInputStream)
Publicado por: Kerber0 en 28 Noviembre 2008, 02:04 am
Esa es mi duda, como hago para conocer el buffer sin tener que especificarlo yo.
Quiero decir que no quiero poner byte [] b = new byte[200] por ejemplo, sino que pueda conocer el buffer de entrada y no especificarlo de antemano.

Gracias!


Título: Re: Conocer buffer del flujo de datos (FileInputStream)
Publicado por: joseprox en 30 Noviembre 2008, 05:11 am
no te entiendo muy bien.....de como conocer el buffer...que quieres haces...

leer un dato cualquiera desde la consola o quieres conocer el tamaño del buffer de entrada que la consola usa para la Transmision y Recepcion de los datos?...

se un poco mas claro.....

saludos....joseprox



Título: Re: Conocer buffer del flujo de datos (FileInputStream)
Publicado por: Kerber0 en 30 Noviembre 2008, 22:08 pm
Por ejemplo tienes un archivo que contiene "Hola mundo" en c:\holamundo.txt

al leero necesito declarar byte[] b = new byte[10] pero de esta forma yo se que van 10 bytes, ya que conozco el contenido, pero supongamos que el contenido es variable o desconocido, como tendria que hacer para poder manipularlo?

Gracias


Título: Re: Conocer buffer del flujo de datos (FileInputStream)
Publicado por: -Ramc- en 30 Noviembre 2008, 22:10 pm
Y ¿porque haces eso? Es mejor ir leyendo el archivo hasta que te devuelva null, porque llegó al final de este.


Título: Re: Conocer buffer del flujo de datos (FileInputStream)
Publicado por: ~~ en 30 Noviembre 2008, 22:19 pm
Código
  1. File archivo = "tu_ruta";
  2. archivo.length(); // Te devuelve el tamaño
  3.  

Así puedes hallar el tamaño del archivo para definir el tamaño del buffer


Título: Re: Conocer buffer del flujo de datos (FileInputStream)
Publicado por: arlick en 4 Diciembre 2008, 14:49 pm
Por ejemplo tienes un archivo que contiene "Hola mundo" en c:\holamundo.txt

al leero necesito declarar byte[] b = new byte[10] pero de esta forma yo se que van 10 bytes, ya que conozco el contenido, pero supongamos que el contenido es variable o desconocido, como tendria que hacer para poder manipularlo?

Gracias

Tienes la opción de ir leyendo línea a línea:

Código
  1. public void imprimirFichero(String fichero) throws IOException{
  2.                BufferedReader br = new BufferedReader(new FileReader(new File(fichero)));
  3.  
  4.                String linea = "";
  5.  
  6.                while((linea = br.readLine()) != null){
  7.                        System.out.println(linea);
  8.                }
  9.        }
  10.  

De esa forma lees una línea y puedes tratarla como quieras, sin necesidad de declarar un buffer.