Arquivo binario [Ajuda]

tenho o seguinte problema , um programa em C q grava dados em binario, no caso a seguinte struct

define TAM 50

typedef struct {

char login[TAM];
char senha[TAM];
int nivel;
int codigo;

}registro;

a cada gravaçao , uma struct e gravada no disco

eu preciso ler isso em java, mas nao da certo

eis o codigo java

private DataInputStream leitor;
private FileInputStream fis;
private String login,senha;
private int codigo,nivel;

fis = new FileInputStream("…/config/login.cas");
leitor = new DataInputStream(fis);

while(fis.read() != -1){

login = leitor.readUTF();
senha = leitor.readUTF();
nivel = leitor.readInt();
codigo = leitor.readInt();

System.out.println("" + login + " " + senha + " " + nivel + " " + codigo);

}//while

fis.close();

alguem pode me ajudar?