Witajcie,
mam problem z błędem java.util.NoSuchElementException. Czy mógłby ktoś pomóc w zlokalizowaniu problemu?
Z góry dziękuję za pomoc!
package zadanie_4;
import java.io.IOException;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws IOException
{
String login, hasło, rola;
Scanner sc = new Scanner(System.in);
System.out.println("Witamy w aplikacji");
Boolean czyUdałoSieZalogowac;
Aplikacja aplikacja = new Aplikacja();
do
{
System.out.println("podaj login ");
login = sc.next();
System.out.println("podaj hasło ");
hasło = sc.next();
czyUdałoSieZalogowac = aplikacja.zalogowanie(login, hasło);
if (czyUdałoSieZalogowac == false)
{
System.out.println("Błędny login i hasło");
}
} while (czyUdałoSieZalogowac == false);
System.out.println("Udało się zalogować");
if (aplikacja.getZalogowanyUzytkownik().getRola().equals("admin"))
{
int opcja = 0;
System.out.println("wybór 1- dodanie użytkowanika");
System.out.println("wybór 2- wylogowanie się");
opcja = sc.nextInt();
if (opcja == 1)
{
System.out.println("Prosze podaj mi login nowego użytkownika ");
login = sc.next();
System.out.println("Prosze podaj mi hasło nowego użytkownika ");
hasło = sc.next();
System.out.println("Prosze podaj mi role nowego użytkownika ");
rola = sc.next();
aplikacja.dodajUzytkownika(login, hasło, rola);
System.out.println("Udało się dodać użytkownika");
} else if (opcja == 2)
{
aplikacja.wylogowanieUzytkownika();
System.out.println("Został wylogowany ");
}
} else if (aplikacja.getZalogowanyUzytkownik().getRola().equals("uzytkownik"))
{
int opcja = 0;
System.out.println("wybór 1- wyświetl mój login");
System.out.println("wybór 2- wylogowanie się");
opcja = sc.nextInt();
if (opcja == 1)
{
System.out.println("Twój login to " + aplikacja.getZalogowanyUzytkownik().getLogin());
}
else if (opcja == 2)
{
aplikacja.wylogowanieUzytkownika();
System.out.println("Został wylogowany ");
}
}
}
}
package zadanie_4;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Aplikacja {
private Uzytkownik[] uzytkownicy;
private Uzytkownik zalogowanyUzytkownik;
public Uzytkownik getZalogowanyUzytkownik() {
return zalogowanyUzytkownik;
}
public Aplikacja() throws IOException // bład wejscia wyjscia
{
startAplikacji();
}
private void startAplikacji() throws IOException {
int iloscUzytkownikow;
Scanner sc = new Scanner(new File("users.txt"));
iloscUzytkownikow = sc.nextInt();
uzytkownicy = new Uzytkownik[iloscUzytkownikow];
int index = 0;
while (sc.hasNext()) {
String login = sc.next();
String hasło = sc.next();
String rola = sc.next();
Uzytkownik uzytkownik = new Uzytkownik(login, hasło, rola);
uzytkownicy[index] = uzytkownik;
index = index + 1;
}
}
public boolean zalogowanie(String login, String hasło) {
for (int i = 0; i < uzytkownicy.length; i++) {
if (uzytkownicy[i].getLogin().equals(login) && uzytkownicy[i].getHasło().equals(hasło)) {
zalogowanyUzytkownik = uzytkownicy[i];
return true;
}
}
return false;
}
public Uzytkownik dodajUzytkownika(String login, String hasło, String rola) throws IOException {
Uzytkownik uzytkownik = new Uzytkownik(login, hasło, rola);
File file = new File("users.txt");
try (BufferedWriter zapisywacz = new BufferedWriter(new FileWriter(file, false))) {
zapisywacz.write(" " + (uzytkownicy.length + 1));
zapisywacz.newLine();
for (int i = 0; i < uzytkownicy.length; i++) {
Uzytkownik uzytkownikIstnięjący = uzytkownicy[i];
zapisywacz.write(uzytkownikIstnięjący.getLogin() + " " + uzytkownikIstnięjący.getHasło() + " "
+ uzytkownikIstnięjący.getRola());
zapisywacz.newLine(); // metoda write do zapisywania tekstu
}
zapisywacz.write(uzytkownik.getLogin() + " " + uzytkownik.getHasło() + " " + uzytkownik.getRola());
zapisywacz.newLine();
} catch (IOException e) {
throw new RuntimeException();
}
startAplikacji();
return uzytkownik;
}
public void wylogowanieUzytkownika() {
zalogowanyUzytkownik = null;
}
}
package zadanie_4;
public class Uzytkownik
{
private String login;
private String hasło;
private String rola;
public Uzytkownik(String login, String hasło, String rola)
{
this.login = login;
this.hasło = hasło;
this.rola = rola;
}
public String getLogin()
{
return login;
}
public String getHasło()
{
return hasło;
}
public String getRola()
{
return rola;
}
}