BufferedReader begrenzen

Diskutiere BufferedReader begrenzen im Java Basics - Anfänger-Themen Bereich.
M

MateMalte

Hi Ihr,
Ich habe eine .txt Datei mit Namen angelegt. Aus dieser Datei habe ich mit einem BufferedReader einen List gemacht:
Java:
//Namensliste erstellen
        File VorNamenFrauen = new File("D:\\Programme\\Eclipse\\Workplace\\InstLife - June\\Listen\\VorNamenFrauen.txt");
        try(BufferedReader reader = new BufferedReader(new FileReader(VorNamenFrauen))) {
            VorNamensListeFrauen = reader.lines().skip(1).collect(Collectors.toList());
        } catch (IOException ex) {
            throw new UncheckedIOException(ex);
        }
Jetzt würde ich gerne mehr Namen hinzufügen, diese aber in einer andern Liste speichern. Ich weiß ich kann Zeilen überspringen, aber kann ich ihn auch nur bis zu einer bestimmten Stelle die Zeilen lesen lassen?
Und wenn nicht, habt Ihr vielleicht Vorschläge wie ich an das eben genannte Ziel gelange?
Vielen Danke
 
H

handshake45

Ungetestet:
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Vornamen {
	static List<String> getVornamen(String f) throws FileNotFoundException, IOException {
		try (BufferedReader r = new BufferedReader(new FileReader(new File(f)))) {
			return r.lines().skip(1).collect(Collectors.toList());
		}
	}

	static List<String> addVornamen(List<String> l, String name) {
		List<String> l2 = new ArrayList<String>(l);
		l2.add(name);
		return l2;
	}

	public static void main(String[] args) throws FileNotFoundException, IOException {
		List<String> vornamen = getVornamen("foo.txt");
		List<String> vornamen2 = addVornamen(vornamen, "bar");
		System.out.println(vornamen.size());
		System.out.println(vornamen2.size());
	}
}
 
J

JustNobody

Ich verstehe jetzt nicht genau, was du machen willst.

aber kann ich ihn auch nur bis zu einer bestimmten Stelle die Zeilen lesen lassen?
Falls du nur eine bestimmte Menge an Namen lesen willst, dann kannst du .limit(n) nutzen.

Generell kannst du aber auch jederzeit auf eine Stream Lösung verzichten und es einfach selbst schreiben. Dann kannst du beim lesen ganz frei agieren, wie du es gerne möchtest.
 
M

MateMalte

Ich verstehe jetzt nicht genau, was du machen willst.



Falls du nur eine bestimmte Menge an Namen lesen willst, dann kannst du .limit(n) nutzen.

Generell kannst du aber auch jederzeit auf eine Stream Lösung verzichten und es einfach selbst schreiben. Dann kannst du beim lesen ganz frei agieren, wie du es gerne möchtest.
Es soll ein Spiel werden, indem am Anfang ein zufälliger Charakter erstellt wird, dessen Name von Nationalität und abhängig ist. Und damit ich nicht für jedes Land je zwei .txt Dateien erstellen muss (männlich, weiblich), würde ich gerne die weiblichen und männlichen Namen gerne zusammenfassen. Da wäre .limit() eine gut Lösung. Ich muss es nur noch ausprobieren. Danke!
 
Thema: 

BufferedReader begrenzen

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben