aus einer Datei Lesen, teilen Sie die Zeile und speichern in einem array in JAVA
Okay Jungs zuerst und vor allem lassen Sie mich sagen, dass ich bin ein NEULING, wenn es um die Programmierung in JAVA. Ich Lehre mich selbst, also mit dieser sagte, bitte Geduld mit mir, als ich bin dabei das beste ich kann mit dem was ich habe. Mit dieser sagte, hier ist mein dilemma!!!
Ich habe eine Datei "Benutzer.csv" speichert username und Kennwort-Felder.
username,password
josh,123456ABC
bman,turtlestew123
etc...
Was ich versuche zu tun ist...
- Lesen Sie die Zeilen von diesem Dokument ("Benutzer".csv -) (die ist im selben Verzeichnis wie die class-Datei)
- Split den Zeilen mit .split(","); auf die Eingabe
- Store split 1 in einem array[0] und split 2 in den gleichen array[1]
Muss das array in der Lage sein, zu wachsen, wie ich Benutzer hinzufügen, um die Datei. Irgendwann möchte ich, um zu überprüfen, Informationen aus der Reihe, aber meine größte Sorge im Moment ist, wie auch die Informationen erhalten, die in das array. Hier ist, was ich spielen, um mit, aber ich weiß nicht, wie man es tun, was ich will...
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class BufferedReaderExample {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("Users.csv")))
{
String sCurrentLine;
String first = "Username is: ";
String second = "Password is: ";
while ((sCurrentLine = br.readLine()) != null) {
String[] information = sCurrentLine.split(",");
String username = information[0];
String password = information[1];
System.out.println(username);
System.out.println(password);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Dieser code liest die Zeilen, und Spalten Sie Sie und deren Ausgabe auf dem Bildschirm... aber es ist nicht der Speicherung in dem array, so kann ich mit dem array zu suchen, die für bestimmte Elemente.
Dies ist für einen login-gui. einfach Benutzername und Kennwort in den entsprechenden Feldern. Wenn die person sich zuvor auf den Anmelde-button, ich will es, ziehen Sie die Informationen aus der Datei, überprüfen Sie Benutzernamen und überprüfen Sie dann Ihr Passwort. Wieder dieses Teil ist das große Bild, aber nur will, um Sie wissen zu lassen, was es wird für verwendet.
Bitte auch daran denken, dass ich bin sehr unerfahren und wenn Sie post-code verwenden Sie bitte nicht etwas ähnlich, aber anders als, dass verwirrt mich nur noch mehr.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, dein array wird nicht wachsen, weil Sie re-erklärt für jede Zeile der Datei (es ist in der
while
loop).Um das zu beheben, könnten Sie initialisieren das array vor der Schleife, und verwenden Sie
System.arraycopy
zu machen, wachsen.Einen Teil von dieser "quick fix", es gibt eine Reihe von Problemen, mit Ihrer Idee meiner Meinung nach:
Ich bin Vereinfachung ein bisschen hier, es gibt Unmengen an Literatur darüber.
Viel Glück!
In der Regel Menschen verwenden eine ArrayList für diese adaptiert, um ein Array.
Ein array erforderlich zu wissen, die Anzahl der Elemente, während eine arraylist ein array verwendet, unter und dynamisch ändert, wenn nötig (gut, schafft ein größeres array und kopiert die Daten über).
Für den speziellen Fall, Sie wirklich wollen, eine hashmap, das dauert ein
key
und einvalue
.Wenn ein login kommt, verwenden Sie
data.get(username);
um das gespeicherte Kennwort, und vergleichen Sie mit dem, was der Benutzer angegeben hat.Deklarieren Sie Ihre Arrays außerhalb des try/catch-Anweisung:
Dann, Sie werden in der Lage sein, die Daten an anderen stellen erzeugt.
Wenn Sie möchten, dass auto-Inkrement-array, so Verwenden Sie ArrayList. Dies sind spezielle Datenstrukturen, die Erhöhung, wie die Elemente Hinzugefügt werden.
Ich würde Ihnen empfehlen, zu erstellen
User
POJO-Klasse, denn morgen, wenn eine weitere Eigenschaft Hinzugefügt wird, die die Zeilen der CSV, es kann angenommen werden, durch das hinzufügen eines weiteren Feldes in der unten aufgeführten Klasseund verwenden
ArrayList
beim Parsen der DateiAUCH: Speichern Sie das Kennwort des Benutzers in eine csv-Datei ist ein Sicherheitsrisiko. Versuchen Sie es mit Datenbank und speichern Sie verschlüsselte Kennwörter, werden anstelle des tatsächlichen Passwortes (beim abrufen nur entschlüsseln das Passwort und vergleichen)