Uso de fileInputStream

Eu tô precisando ler um aqruivo que está em bytes.
decodificá-los e guardar em um vetor

eu tô fazendo assim:

public static void main(String[] args) throws IOException,FileNotFoundException {
File f = new File("C:\\Users\\Silvia\\Desktop\\REA Salvador N0708\\REA_Salva_0.map");   
FileInputStream fis = new FileInputStream(f);   
int []defLons= readArrayInt(fis);
for(int i=0;i<defLons.length;i++){
          System.out.print(defLons[i]+" ");
      }
}
}

 public static int readInt (FileInputStream fis) throws IOException {
           return fis.read()+(fis.read()<<8)+(fis.read()<<16)+(fis.read()<<24);

   }

public static int[] readArrayInt(FileInputStream fis) throws IOException{
        int []v = new int[maxDefs];
        for(int i=0;i<maxDefs;i++){
            v[i]=readInt(fis);
        }
        return v;
    }

Soh que não funciona… Alguém sabe o pq?