Test Foro de elhacker.net SMF 2.1

Programación => Programación General => 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 (java) [Seleccionar]

File archivo = "tu_ruta";
archivo.length(); // Te devuelve el tamaño


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
Cita de: 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

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

Código (java) [Seleccionar]

public void imprimirFichero(String fichero) throws IOException{
                BufferedReader br = new BufferedReader(new FileReader(new File(fichero)));

                String linea = "";

                while((linea = br.readLine()) != null){
                        System.out.println(linea);
                }
        }


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