Undefinierte Variable?



  • Hi,

    ich hab eine Textdatei lese und schreibfunktion geschreiben die soweit funktioniert, jetzt soll vor dem schreiben der eingelesenen string verändert werden nur meldet mir java dauernd das diverse variablen nicht inizialisiert wären, was aber nicht der fall ist.

    import java.io.*;
    import java.text.*;
    import java.util.*;
    import java.lang.String;
    
    public class LesenSchreibenTextdatei
    {
      public static void main( String[] args )
      {
        Vector vec = new Vector();
         String s, s1;
    
        // Lies Textzeilen aus der Datei in einen Vector:
        try {
          System.out.print("Quelldateiname: ");
    
                       BufferedReader in2 = new BufferedReader(
                                           new InputStreamReader(System.in));
    
                       // Konsole auslesen
                       String quelldateiname = in2.readLine();
                       //in2.close();
    
          BufferedReader in = new BufferedReader(
                              new InputStreamReader(
                              new FileInputStream( quelldateiname ) ) );
          while( null != (s = in.readLine()) )
          {
            vec.add( s );
          }
          //in.close();
    
        } catch( Exception ex ) {
          System.out.println( ex );
        }
    
        // Schreibe alle Elemente als Textzeilen in die Datei:
        try
        {
          System.out.print("Zieldateiname: ");
    
          BufferedReader in3 = new BufferedReader(
                               new InputStreamReader(System.in));
    
          // Konsole auslesen
          String zieldateiname = in3.readLine();
          //in3.close();
    
          BufferedWriter out = new BufferedWriter(
                               new OutputStreamWriter(
                               new FileOutputStream( zieldateiname ) ) );
    
                   //Vectorauswertung
                  // if(vec.size()>1)
                  // {
                        while (  s1 ==" DATEN-ENDE        ")
                        {
                        //String Aufspalten
                        s1 = s.substring( 1,20 );
    
                        s1.trim();
                        s = s1+"##";
    
                        //System.out.println(sTMP);
                        }
                   // }
    
          for( int i=0; i<vec.size(); i++ )
          {
            s = vec.get( i ).toString();
            System.out.println( s );
            out.write( s, 0, s.length() );
            //out.newLine();
          }
    
          out.close();
        } catch( IOException ex )
          {
          System.out.println( ex );
          }
      }
    }
    

    der fehlercode lautet:
    LesenSchreibenTextdatei.java:56: variable s1 might not have been initialized
    while ( s1 ==" DATEN-ENDE ")
    ^
    LesenSchreibenTextdatei.java:59: variable s might not have been initialized
    s1 = s.substring( 1,20 );
    ^
    nur sind die beiden variablen doch ganz am anfang definiert also sollte dieser fehler doch garnicht kommen.

    mfg



  • Die Variable ist aber nicht initialisiert.
    Mach String s = "", s1 = "";
    Außerdem solltest Du die While-Schleife Überdenken: Strings vergleicht man mit equals.



  • Und er sagt nicht, dass sie nicht initialisiert wären, sondern dass sie es eventuell nicht sind.


Anmelden zum Antworten