Ich habe eine Datendatei in eine ArrayList importiert. Mein Problem ist, dass, obwohl es alle Namen in der Datei ausgibt, es mir nicht die richtige Größe geben wird. Stattdessen wird nur 1 ausgedruckt.Warum funktioniert .size() nicht ordnungsgemäß auf dieser ArrayList?
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class TestArray {
public static void main (String [] args){
String filePath = "C:\\Users\\Admin\\workspace\\Fund III\\src\\names.dat";
Scanner sc = null;
try {
sc = new Scanner(new File (filePath));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//Makes Array list
ArrayList<String> nameList = new ArrayList<String>();
//Dumps names into array
try{
while(sc.hasNextLine())
{
nameList.add(sc.nextLine());
}
}
catch(Exception e)
{
System.out.println("Error: " + e);
}
System.out.println(nameList.size());
System.out.println(nameList);
}
}
Wer hat gesagt, dass 1 nicht die richtige Größe hat? Vielleicht hat die Liste nur * eine * Sache darin. – Makoto
Wie ist Ihre Datei strukturiert? Sind alle Namen in einer Zeile? –
Wenn Sie eine Linux-Datei in einen Java-Prozess laden, der unter Windows läuft (oder umgekehrt), erkennt der Scanner die "Zeilenumbrüche" möglicherweise nicht korrekt und behandelt den Inhalt als einzelne Zeile. – Brad