Java finden/Lesen einer Datei von der Benutzer-Eingabe?
Muss das Programm druckt den text in der Datei-ich bitte es zu Lesen.
Das problem ist, ich codiert es zu Lesen, den text aus einer bestimmten Datei
File file = new File("numbersonnumbers.txt");
Scanner inputFile = new Scanner(file);
Wie bekomme ich das Programm zum Lesen von text aus einer Datei angegeben durch den Benutzer-Eingang?
*Die Datei wird im gleichen Verzeichnis/Ordner wie das Programm, so dass ist nicht ein Problem.
EDIT: Mein vorheriger Versuch der Benutzereingaben
Scanner keyboard = new Scanner(System.in);
String filename = keyboard.nextLine();
File file = new File(filename);
Scanner inputFile = new Scanner(file);
- Der code, den Sie gerade bearbeitet, nicht von Bedeutung in der geringsten Annahme, dass es in dem Fall funktioniert der hard-codiert
"numbersonnumbers.txt"
Datei in Ordnung. Und wenn es nicht funktioniert auf die Datei, dann würde ich das löschen dieser Frage und konzentrieren sich auf die Festsetzung dieses Problem, bevor Adressierung damit die Benutzer geben Sie einen Dateinamen in. - es funktioniert...die ganze while-Schleife einzurichten ist der Punkt, der das Programm...
- Dann, der code ist irrelevant. Sie müssen den entsprechenden code. Speziell der code, wo Sie versucht haben, nehmen Eingabe einen Dateinamen und senden diese an Ihre
File file = new File(someFile);
Linie. Und die Fehlermeldung, die Sie bekommen, wenn Sie bekommen eine. - das sind nur zwei Teile des Codes.....
- ich habe meine Versuch...buchstäblich...hat nicht funktioniert
- Was hast du geben? Und was ist passiert?
"did not work"
ist nicht sehr hilfreich, wenn man bedenkt Sie möchten freiwillige, die das Programm Debuggen. - 'code' javac Lab02.java java Lab02 'code' und dann die EINGABETASTE drücken resultierte in "error running-Programm"
- dann, als ich versuchte, die Eingabe der Datei-name wird neben java Lab02 file.txt es ging geht in limbo
- Kann Sie nur versuchen Sie
"numbersonnumber.txt"
wie der name der Datei, da Sie wissen, dass Ihr code funktioniert bereits für diese Datei? Und klar erklären, das tatsächliche Ergebnis."goes into limbo"
ist keine akzeptable Beschreibung dessen, was geschieht, indem jede Maßnahme. - das funktioniert nicht, entweder! aus welchem Grund auch immer..es sei denn ich fest in den code der Datei, die ich will, es zu Lesen..es dauert nicht
- Ich weiß nicht, was Sie zu sagen. "funktioniert nicht", "nicht" und "geht in limbo" sind völlig inakzeptabel Beschreibungen von dem, was tatsächlich geschieht. Wenn Sie kann nicht genauer werden mit Ihren Fehlern, kein Mensch kann dir helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erklären
String
variable, wiesomeUserFile
nehmen Benutzereingaben. Dann...Möchten Sie vielleicht überprüfen Sie Ihre Eingabe und fügen Sie
".txt"
an das Ende Ihrer Eingabe.Wenn das funktioniert:
Dann dies:
Wird genau die gleiche Sache, vorausgesetzt, Sie geben
numbersonnumbers.txt
und-Typ exakt.Vorausgesetzt, Sie geben
numbersonnumbers.txt
genau, das zweite snippet macht GENAU das gleiche wie das erste snippet.Erstens sollten Sie den Benutzer auffordern, die Eingabe der Dateinamen. Dann ersetzen Sie einfach die "numbersonnumbers.txt" in Ihrem code, um die variable, die Sie für die Benutzereingaben.
1) muss Das Programm drucken Sie den text in die Datei:
Können diese Datei nennen, dataFile.text, oder dataFile.dat (so oder so funktioniert)
Vorausgesetzt, dass der Kunde die Eingabe eine Datei, muss man den Datei Namen...
Diese Java-Anweisungen wird der trick:
//Erstellen Sie einen Scanner zum Lesen von Benutzer-Datei-name
Scanner userInput = new Scanner(System.in);
//Request den Namen der Datei vom client
System.aus.println("Geben Sie den Namen der Eingabedatei: ");
//Ruft client-Dateinamen
String fileName = scanFile.nextLine - ();
//scanFile, durchsucht Sie die neue Datei mit dem Namen (client-Datei), die sich im src-Verzeichnis. Das "src/" steht für den Pfad zu der Datei (client-Datei).
Scanner scanFile = new Scanner(new File("src/" + fileName));
---------------------------------------------------------------------------------
2) Das problem ist ich codiert es zu Lesen, den text aus einer bestimmten Datei
Ja, alles, was Sie Tat, war-Datei Ihres eigenen namens, "numbersonnumbers.txt" das ist genau der code, den Sie sollten Folgendes in die Lösung zu diesem problem, aber anstatt zu Tippen "numbersonnumbers.text" verwenden Sie die client-Eingabe-Datei, die die String-variable "fileName" in den bisherigen code...*
File Datei = new File("numbersonnumbers.txt");
Scanner inputFile = new Scanner(Datei);
Korrigiert: File file = new File("src/" + fileName);
Scanner inputFile = new Scanner(Datei); //scannt alle Daten der Datei
Korrigiert Mehr: Scanner inputFile = new Scanner(new File("src/" + fileName));
---------------------------------------------------------------------------------
3) muss Das Programm druckt den text in der Datei
So haben Sie abgeschlossen, bis entweder Scanner scanFile in #1 oder Scanner inputFile in #2
Nun, ein array erstellen, offensichtlich ist der array-Typ basiert auf dem Typ der Daten in die Datei... - Saiten (z.B. Monatsnamen) oder int für (z.B. ID-Nummern .. ect)
Vorausgesetzt, die Daten in der Datei stehen die Namen der Monate (jan, feb, März) machen wir ein array vom Typ String.
String[] fileData = new String[100]; //zufällige Länge (100)
//Jetzt werden wir kopieren jedes Element aus der Datei ins array müssen Sie Platzhalter-Wert zu verfolgen, der die position während der Traversierung (hält in jeder Position) der Datei items.
int i = 0; //itialize Beginn des traversal (index 0 der Datei items)
while (scanFile.hasNextLine()) { //Während die Datei hat die Eingabe auf der nächsten Zeile, Lesen aus Datei.
Respektvoll,
-!di0m
Haben Sie sich fast alles, was Sie brauchen in Ihrem code schon. Sie müssen nur neu zu ordnen, Ihre Zeilen code richtig, und fügen noch einige mehr.
benötigen Sie zwei Schritte: Scannen was der Benutzer eingibt, als vollständige Pfad der Datei, dann Scannen Sie die eigentliche Datei Daten wie folgt:
Jetzt Lesen Sie die gescannte Datei
inputFile
. Zum Beispiel können Sie einewhile
- Schleife zum Lesen eine Zeile zu einem Zeitpunkt alle Daten Lesen und drucken Sie es aus wie folgt:Oder setzen Sie jede Zeile der Rohdaten (geschnitten und gespalten) in ein array und drucken Sie jede Zeile als ein array wie folgt: