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

Problemas con un FileInputStream!!!

Estas en el tema de Problemas con un FileInputStream!!! en el foro de Java en Foros del Web. Hola a todos!! Tenía una duda y espero que me podreis ayudar, se trata con el tema de FileInputStream, tiene 3 maneras de leer datos ...
  #1 (permalink)  
Antiguo 17/04/2004, 10:13
 
Fecha de Ingreso: mayo-2003
Mensajes: 64
Antigüedad: 21 años
Puntos: 0
Problemas con un FileInputStream!!!

Hola a todos!!
Tenía una duda y espero que me podreis ayudar, se trata con el tema de FileInputStream, tiene 3 maneras de leer datos y son las siguientes:

int read();
Lee un byte y devuelve -1 al final del stream.

int read( byte b[] );
Llena todo el array, si es posible. Devuelve el número de bytes leídos o -1 si se alcanzó el final del stream.
int read( byte b[],int offset,int longitud );
Lee longitud bytes en b comenzando por b[offset]. Devuelve el número de bytes leídos o -1 si se alcanzó el final del stream.

Mi duda es por ejemplo en el segundo caso como puedo mostrar por pantalla lo que leo, por pantalla o dejarlo en alguna variable, me explico, al leer de esa manera, lo que devuelve el número de bytes leidos, pero yo no quiero el número sino los bytes, entonces como hago para convertir en los bytes que quiero.
En el caso del primer read con convertirlo (char)i, ya esta, pero en el segundo caso como obtengo lo que realmente he leido.

Quizas es qe estoy enfocando mal los ficheros, pero no es un lio leer asi lo ficheros, no hay una manera más fácil, tb esta el DataInputStream pero cuando compilo me dice que esta deprecated, ya que existe el BufferedInputStream.
Total que estoy hecha un lio y no se como ver lo que he leido.

Mchas gracias!! y perdonar por la chapa.
Gracias de antemano!!
Fiss5
  #2 (permalink)  
Antiguo 22/04/2004, 21:35
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
muy facil, b[] es un arreglo donde se guardaran los bytes leidos, para mostralos bastara con un

for(int i = 0; i < b.length; i++) {
System.out.print((char) b[i]);
}

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 25/04/2004, 12:30
 
Fecha de Ingreso: mayo-2003
Mensajes: 64
Antigüedad: 21 años
Puntos: 0
Muchas gracias!!!
  #4 (permalink)  
Antiguo 04/05/2004, 10:19
 
Fecha de Ingreso: mayo-2003
Mensajes: 64
Antigüedad: 21 años
Puntos: 0
He comprobado la solución que me comentaste, pero tengo un problemilla y es el siguiente; me saca la información una letra en cada línea, es decir no me aparece el texto en 3 líneas o en la que tiene que ser, sino que me escribe un caracter en cada línea.
Y claro eso no me es muy util, no existe una manera de poder hacerlo.
Aparte una cosa que no tengo muy clara, es que el método read() lo que hace es devolver el número de caracteres leidos no??
No hay una manera más óptima de visualizar esos caracteres del fichero??
Muchas gracias!!!
Fiss5
Es decir:

import java.io.*;
class MostrarFichero2{
public static void main(String args[]) throws IOException{
byte b[] = new byte[1024];
int i;
FileInputStream fin;
fin=new FileInputStream("Prueba.txt");
//lee caracteres hasta llegar al final del archivo EOF
do{
i=fin.read(b);
for (i=0;i<b.length;i++)
{
System.out.println((char)b[i]);
}
}
while (i!=-1);
fin.close();
}
}
  #5 (permalink)  
Antiguo 27/04/2008, 10:18
 
Fecha de Ingreso: septiembre-2007
Mensajes: 1
Antigüedad: 16 años, 8 meses
Puntos: 0
Problemas con un FileInputStream!!!

donde se coloca el archivo txt que va dentro de FileInputStream(pruebas.TXT)

EN DONDE SE COLOCA dentro de la carpeta del proyecto , o en el C: o donde?
  #6 (permalink)  
Antiguo 27/04/2008, 10:40
 
Fecha de Ingreso: abril-2008
Mensajes: 2
Antigüedad: 16 años
Puntos: 0
Re: Problemas con un FileInputStream!!!

<embed src="http://www.xatech.com/web_gear/chat/chat.swf" quality="high" width="500" height="400" name="chat" FlashVars="id=20307836&rl=Spanish" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://xat.com/update_flash.shtml" /><br><small><a target="_BLANK" href="http://xat.com/web_gear/?cb"></a> <a target="_BLANK" href="http://xat.com/web_gear/chat/go_large.php?id=20307836"></a></small><br>

<img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/bT*xJmx*PTEyMDkzMTMyMzU3MjEmcHQ9MTIwOTMxMzI5OTQ2My ZwPTUzMTUxJmQ9Jm49Jmc9MQ==.jpg" />
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 12:06.