2015-11-05 4 views
-3

Я работаю над частью входа в пароли проекта класса. Ничего особенного. Пользователь или роль будет int, а пароль - String. На данный момент я просто использую простое шифрование. Проблема, с которой я столкнулась, - это прочитать файл, в котором я получаю несоответствие ввода. В прошлом я делал что-то подобное, что требовало, чтобы я читал ints и Strings и не испытывал никаких проблем. Но я просто не могу понять, что происходит в этом случае. Любая помощь относительно того, почему я получаю эту ошибку, будет с благодарностью. Я использую while(inputStream.hasNextLine()), затем читаю int, а затем String Я пробовал hasNextInt и hasNext и продолжаю получать ту же ошибку.Загрузка int и зашифрованной строки из txt-файла

public void readFile(){ 
    Scanner inputStream = null; 
    try { 
     inputStream = new Scanner (new FileInputStream("login.txt")); 
    }catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } 
    if(inputStream != null){ 
    while (inputStream.hasNextLine()){ 
     int luser = inputStream.nextInt(); 
     String lpass = inputStream.nextLine(); 
     newFile[count] = new accessNode(luser, lpass); 
     count ++; 
    } 
    inputStream.close(); 
    }  
} 
+0

Вы должны опубликовать фактическую ошибку, что вы получаете, чтобы получить хорошую помощь - I, E, фактический показ сообщения об ошибке, которое неисправная линии и трассировку стеки. –

ответ

1

Попробуйте прочитать его в виде строки и преобразование строки в Int

while (inputStream.hasNextLine()) { 

    Integer luser = Integer.parseInt(inputStream.nextLine()); 
    String lpass = inputStream.nextLine(); 
    newFile[count] = new accessNode(luser, lpass); 
    count++; 
} 

Но вы должны убедиться, что ваш файл имеет свои данные в точном формате, как показано ниже

12342 
password 
1

Трудно сказать, не зная, какую ошибку вы получаете, но я предполагаю, что это потому, что вы не читаете весь файл.

Ваш файл, вероятно, выглядит следующим образом:

1\r\n 
password\r\n 

При вызове nextInt() она считывает Int, но не продвигается мимо первого \ г \ п так, когда вы звоните nextLine() читает до конца строки, так что все, что вы получаете, это \ r \ n. Вам нужно прочитать предыдущие данные, а затем прочитать пароль.

Попробуйте

int luser = inputStream.nextInt(); 
inputStream.nextLine(); 
String lpass = inputStream.nextLine(); 
newFile[count] = new accessNode(luser, lpass);