readline liefert immer null



  • hallo

    hab folgende methode geschriftelt:

    public String Foerderer (int zeile)
    	{
    		String line = "", Fe = "";
    		int i = 0;
    
    		LineNumberReader lnr = new LineNumberReader(filebuffer);
    		lnr.setLineNumber(zeile);
    		try
    		{
    		line = lnr.readLine(); //hier bekomm ich immer null zurück
    		}catch(Exception ex)
    			{System.err.println("Fehler in Methode: Foerderer");
    			 System.err.println("Fehler beim lesen des Buffers:/n"+ex);}
    
    		while(line.charAt(i) != ' ')
    		{
    			Fe = Fe + line.charAt(i);
    			i++;
    		}
    
    		return(Fe);
    

    zum testen hab ich mal zeilen 0 - 3 ausprobiert aber wie schon erwähnt bekomm ich in jedem fall null zurück.

    null bekomm sollt ich ja nur am ende des streams bekommen. also könnt mich wer
    aufklären wo ich einen fehler gemacht hab oder was ich nicht bedacht hab?

    aja das file das ich einlese enhält zeilen wie folgt:

    6.1: hf001
    6.2: hf003
    9.2: hf005
    10.1: hf001
    10.2: hf001
    11.1: hf001
    

    danke für eure hilfe

    lg peace



  • Und was is filebuffer?



  • gje schrieb:

    Und was is filebuffer?

    Ich schätze mal ein BufferedReader.

    @Peace_VsC

    Vielleicht gibt es die Zeile nicht, die du einstellst und du bekommst null zurück.
    Da du line nicht auf null prüfst ist eine Exception vorprogrammiert

    if(line == null)
      return FE;
    
    while(line.charAt(i) != ' ')
            {
                Fe = Fe + line.charAt(i);
                i++;
            }
    

    Guck mal nach, wie du die Methode aufrufst.



  • filebuffer
    is ein BufferdReader

    ich les in einer anderen methode das file in den BufferdReader und verwend den dann in den anderen methoden:

    public class ReadOutText 
    {
    	BufferedReader filebuffer = null;
    
    	public void readInFile (String filename)
    	{		 
    		try
    		{
    			FileReader file = new FileReader(filename);	 
    			filebuffer = new BufferedReader(file);			
    		}catch(Exception ex)
    			{System.out.println("Fehler beim einlesen der Datei" + ex);}
    	}
    
            public int zeilenAnzahl ()
            {//...
            }
            public String Foerderer (int zeile)
            {//...
            }
    }
    

    //edit:

    Vielleicht gibt es die Zeile nicht, die du einstellst und du bekommst null zurück.

    doch eben die zeien haben einen inhalt 😉

    das file hat 6 zeilen
    und ich bekomm egal welche zeile ich auswähle immer null zurück
    sonst wärs für mich ja anhähernd logisch wenn ich beispielsewise in der 7. zeile null bekomm

    aber eben nicht, bekomm in JEDER zeile null

    //nochmal edit:

    ich bekomm ja auch ohne .setline, also nur mit filebuffer.readline() null zurück



  • oh mann
    ich entschuldig mich für die doofe frage

    hab den fehler gefunden!

    ich hab vergessen den BufferdReader zu schließen.
    deshalb war er am ende des files und gab auch korrektermasen null zurück


Anmelden zum Antworten