Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Kann ich mit einem Scanner eine Datei mehrmals lesen?
Hallo.
Ich würde gerne mit meinem Scanner eine Datei lesen.
Jedoch soll er das mehrmals tuen.
Ich habe scanner.remove(); benutzt, da ich nicht wusste was dieser Befehl bedeuten. Weiß ich auch immer noch nicht.
Aber es hat nicht Funktioniert.
Im Internet habe ich nix zu diesem Thema gefunden.
Deshalb meine Frage:
Mit welchem Befehl kann ich meinem Scanner sagen, wie ich die Datei mehrmals auslesen kann.
Es muss nicht unbedingt ein Scanner sein, es könnte auch BufferedReader sein.
Hauptsache mein Problem wir gelöst.
Mit welchem Befehl kann ich meinem Scanner sagen, wie ich die Datei mehrmals auslesen kann.
Es muss nicht unbedingt ein Scanner sein, es könnte auch BufferedReader sein.
Ich weiß nicht ganz genau was du mit: "Datei mehrfach öffnen" meinst.
Ich bin relativ neu in JAVA und habe also wenig Erfahrung.
Um mich ein wenig in Java zu üben habe ich eine Website besucht die sich Advent of Code nennt.
Dort war die erste Aufgabe, aus einer Datei mit verschieden Zahlen, die heraus zu suchen, die gemeinsam 2020 ergeben.
Mein Code:
Java:
import java.io.*;
import java.util.Scanner;
public class Main {
int x;
int y;
int lö;
int schrittx;
int schritty;
static int anz=0;
static Scanner scx;
public static FileInputStream file;
public Main(){
if (scx.hasNext()){
schrittx++;
x=scx.nextInt();
while(scx.hasNext()){
anz++;
y=scx.nextInt();
if(x+y==2020){
System.out.println("Lösung: "+x*y);
new Main();
}if(anz==186){
new Main(),
}
}
}
}
public static void main(String[] args){
try {
file=new FileInputStream("C:\\Users\\Test\\IdeaProjects\\Programming Advent\\src\\ordner/zahlen.txt");
scx = new Scanner(file);
scy = new Scanner(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
new Main();
}
}
Es könnte sein, dass ich unnötige Variablen undso habe.
Bitte Ignorieren.
Ich muss meinem Scanner also sagen können, in welcher Zeile er anfangen soll zu lesen.
Wenn die Datei jetzt nicht gerade so groß ist daß sie den RAM ernsthaft füllt, würde ich sie einfach einmal einlesen und die Daten anderweitig halten. Z.B. in einer Collection. Eine Datei mehrmals hintereinander zu öffnen nur um sie auszulesen klingt etwas merkwürdig.