Servus,
ich habe eine Datei die lese ich via Scanner und Schleife zeilenweise ein - passt.
Erwartet wird eine Zeile mit
123 456
Jetzt haben aber bestimmte Testdateien, Störkommentare drin, etwas #ha 123 456, oft in der ersten Zeile und einmal auch mitten drin, wie mache ich das, dass meine Zeilenscanner immer wenn er mit nextInt() scheitert die Zeile einfach überspringt. Ich las es gibt eine Skip-Methode, die einen String oder ein Pattern aufnimmt. Da ich Novize bin, bin ich für eine Hilfe dankbar.
ich habe eine Datei die lese ich via Scanner und Schleife zeilenweise ein - passt.
Erwartet wird eine Zeile mit
123 456
Jetzt haben aber bestimmte Testdateien, Störkommentare drin, etwas #ha 123 456, oft in der ersten Zeile und einmal auch mitten drin, wie mache ich das, dass meine Zeilenscanner immer wenn er mit nextInt() scheitert die Zeile einfach überspringt. Ich las es gibt eine Skip-Methode, die einen String oder ein Pattern aufnimmt. Da ich Novize bin, bin ich für eine Hilfe dankbar.
Java:
// Punkte laden
ArrayList<Point> tempPunkte = new ArrayList<Point>();
File fileToRead = new File( fileName );
// String einlesen über Scanner+File-Objektkombo
Scanner scanner;
try {
scanner = new Scanner( fileToRead );
while( scanner.hasNextLine() == true )
{
// TODO Test Datei kommentar.test nicht bestanden
// Umgang mit anderen Sachen, die Zeile rausfeuern
int x = 0;
int y = 0;
// 34 456 erwartet
if ( scanner.hasNextInt() == true )
{
x = scanner.nextInt();
}
if ( scanner.hasNextInt() == true )
{
y = scanner.nextInt();
}
if ( x == 0 && y == 0 )
{
// Zeilenumbruch am Ende
break;
}
Point currentPoint = new Point( x, y );
tempPunkte.add(currentPoint);
}
if ( punkte != null )
{
punkte.clear();
punkte.addAll(tempPunkte);
}
} catch (FileNotFoundException exc) {
// TODO Auto-generated catch block
exc.printStackTrace();
} catch (IOException exc) {
// TODO Auto-generated catch block
exc.printStackTrace();
}