Zeilenweise lesen

guguli

Bekanntes Mitglied
Hallo zusamen,

ich möchte beim auslesen einer datei Zeilenweise,überprüfe ob die Zeile mit einer # anfängt wenn ja dann spring zu nächse zeile.
hab bis jetzt das hier:
Java:
package DataAnalyse;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;

public class DataRead {

	public static void reader(){
		
		File file = new File("pfad");
		
		BufferedReader in = null;
		
		try{
			in = new BufferedReader(new FileReader(file));
			String zeile = null;
			while((zeile=in.readLine())!= null){
				
				System.out.println("Gelesene Zeile: " + zeile); 
		           
			}
		}catch (IOException e){
			e.printStackTrace();
		}finally {
			if(in!=null)
				try{
					in.close();
				}catch (IOException e){
					
				}
		}
	}
}
wie kann ich diese if abfrage realisieren???

THX
 
Ok ich hab das folgend Gelöst:
Java:
if (!zeile.substring (0, 1).equals ("#"))

kriege aber java.lang.StringIndexOutOfBoundsException.

Wo ist mein Fehler 🙂?
 
also du meinst so??
Java:
if (!zeile.startsWith('#'))
				{
					System.out.println("Gelesene Zeile: " + zeile); 
				}
aber so geht s nicht🙁
 
Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
public class bilder {
 public static void main(String[] args){
	 reader();
 }
    public static void reader(){
        
        File file = new File("Pfad/zur/text");
        
        BufferedReader in = null;
        
        try{
            in = new BufferedReader(new FileReader(file));
            String zeile = null;
            while((zeile=in.readLine())!= null){
                if(zeile.startsWith("#")){
                	
                }else{
                System.out.println("Gelesene Zeile: " + zeile); 
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            if(in!=null)
                try{
                    in.close();
                }catch (IOException e){
                    
                }
        }
    }
}
so müsste es funktionieren
 
Eine letzte Frage ab ich noch, wie kann ich Überprüfen wenn die Zeile mit [ anfängt dann das wort zwischen [] speichern und ausgeben???
 
hmm vllt. hab ich mich ungenau ausgedruckt, aber ich würde gerne das wort bzw. die Stringfolge zwischen [] speichern, damit ich den Wo anders benutzen kann 🙂 ich denke mit matches funktioniert das nicht.
 
Hi,

ich will da nichts ersetzten sondern lediglich das wort zwischen [simu] speichern. Also mein plan ist die Datei zeile zu zeile auslesen und wenn # anfang der zeile steht dann ignorieren und zu nächste zeile gehen und wenn anfang der Zeile '[' steht dann das wort zwischen [ ] auslesen und speichern. z-B. [simu] dann will ich simu speichern und dann mit swing ein GUI erstellen, und in der GUI soll ein Block erstellt werden mit dem Namen "simu" 🙂

hoffe du hast jetzt mein Problem verstanden 🙂

Gruß
 
und ich verweise immer noch auf mein replace
du liest zeile aus die mit [ anfängt
replaced alle zeichen [ ] mit "" <- also dass die komplett gelöscht werden
speicherst sie in einen String und den übergibst du dann deiner gui.
 
Moin,

Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
 
public class bilder {
 public static void main(String[] args){
	 reader();
 }
    public static void reader(){
        
        File file = new File("Pfad/zur/text");
        
        BufferedReader in = null;
        
        try{
            in = new BufferedReader(new FileReader(file));
            String zeile = null;
            while((zeile=in.readLine())!= null){
                if(zeile.startsWith("#")){
                	
                }else{
                System.out.println("Gelesene Zeile: " + zeile); 
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            if(in!=null)
                try{
                    in.close();
                }catch (IOException e){
                    
                }
        }
    }
}
so müsste es funktionieren
So ein leer if-Block ist immer böse !! 🙂
Warum nicht etwas eleganter?
Java:
// .....
try
{
    in = new BufferedReader(new FileReader(file));
    String zeile = null;
    while((zeile=in.readLine())!= null)
    {
        if( ! zeile.startsWith("#") )  // !!!
        {
            System.out.println("Gelesene Zeile: " + zeile); 
        }
    }
} catch (IOException e)
// .....

Gruß
Klaus
 
Zuletzt bearbeitet:
Einfach mit .substring(int, int)
Der erste int ist der startindex; der zweite ist der endindex.
String s = "Autobahn";
String s2 = s.substring(0, 4); //s2 ist: "bahn"

Jetzt brauchst du nur die exaten indeces zu finden. Das geht mit .indexof(String). In deinem Fall wäre das indexof("[") bzw indexof("]").
Hinweis, da der startindex "mit in den substring gepackt wird" musst du für indexof("[") noch +1 dazuzählen.
 
Oops. ja, richtig. "Auto". Man sollte nicht soviele Sachen auf einmal machen 🙂
Genau: BeginIndex ist immer inklusive und EndIndex ist exklusive.
 

Zurück
Oben