Falta la primera letra al leer un archivo

Estoy recuperando datos de un archivo y por alguna razón extraño el primer carácter cada vez. mi código.

public String readFile(){
String str = "Not Authenticated";
//Reading the file  
 try{
        FileInputStream fIn = openFileInput(fileName);
        InputStreamReader isr = new InputStreamReader(fIn); 
        char[] inputBuffer = new char[isr.read()]; //str.length()

        // Fill the Buffer with data from the file 
        try {
            isr.read(inputBuffer);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            return e.toString();
        } 

        // Transform the chars to a String 
        String readString = new String(inputBuffer); 
        str = readString;


    } catch (IOException ioe)  
      {return ioe.toString();} 
    return str;
}

el archivo contiene la palabra "Verdadero" me sale "rue" también cuando creo el archivo la primera letra no puede ser mayúscula? si uso mayúscula el archivo nunca se encuentra, supongo que los dos no están relacionados.

Respuesta 1

Si ese archivo es un textarchivo, léalo a través de BufferedReader.

  StringBuilder sb=new StringBuilder();
  BufferedReader br=null;

  try{
   br=new BufferedReader(new InputStreamReader(openFileInput(fileName));
   String line=null;
   while((line = br.readLine()) != null)
    {
      sb.append(line);
     }
   }catch(Exception ex){
     //
   }finally{
    if(br!=null)
      br.close();
   }
  return sb.toString();
Respuesta: 2

isr.read () leerá un solo carácter (es decir, el primer carácter).

Para obtener el tamaño del archivo, puede usar

long length = new File(fileName).length()

Vea la función File.length () para más detalles.

Respuesta: 3

Quiero convertir cualquier archivo a PNG y también revertir el proceso, todo en Java. Quiero usar un formulario int-RGB para la imagen, y hacer que los bytes del archivo sean un byte en el entero RGB. Esta ...

Estoy tratando de acceder a un archivo de Microsoft Excel a través de Java utilizando sun.jdbc.odbc.JdbcOdbcDriver. Sin embargo, sigo obteniendo: "java.sql.SQLException: [Microsoft] [ODBC Driver Manager] Nombre del origen de datos no ...

Este es un buen comienzo. Tengo una situación en la que necesito reiniciar la aplicación después de borrar las preferencias compartidas, así que esto es lo que hago sp.edit (). Clear (). Apply (); Intención mStartActivity = new ...

Supongamos que tengo la siguiente interfaz: public interface Interface1 {} y la siguiente clase: public class Class1 implementa Interface1 {} Además, tengo esta clase: public class Class2 {...