String aus While Schleife für ganze Klasse sichtbar machen

terades

Mitglied
Hallo zusammen,
ich habe mir hier was gebastelt um Sollwerte aus ner Textdatei einzulesen. Allerdings kann ich die Strings nur innerhalb der while - Schleife verwenden, wie bekomme ich die für die ganze Klasse oder public sichtbar?

Vielen Dank schonmal!🙂

Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ReadText {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BufferedReader br = null;

        String file_at_path_to_desktop = System.getProperty("user.home") + "\\" + "Desktop" + "\\" + "SollAuftrag.txt";

        try {
            br = new BufferedReader(new FileReader(new File(file_at_path_to_desktop)));
            String line = null;
            while ((line = br.readLine()) != null) {
                String[] parts = line.split(";");
                String sollWert1= parts[0];
                String sollWert2= parts[1];
                String sollWert3= parts[2];
                String sollWert4= parts[3];
                System.out.println("Wert1: " + sollWert1);
                System.out.println("Wert2: " + sollWert2);
                System.out.println("Wert3: " + sollWert3);
                System.out.println("Wert4: " + sollWert4);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
 
Zuletzt bearbeitet von einem Moderator:
Mach aus den Strings globale Variablen.
Wenn du diese Variable auch außerhalb der Klasse nutzen möchtest wäre es wohl am Besten dafür gleich Getter und Setter Methoden anzulegen 🙂
 
Habs jetzt mit den Getters versucht bekomme nur den null wert raus 🙁

Kannst du vlt mein Code etwas abändern das ich sehe wie du es meinst?

Hab jetzt ne schöne ArrayListe erstellt 🙂. So sieht das ganze etwas besser aus. 🙂
Java:
//So hab ich mit eclipse die setter gemacht.

    public String getSollWert1() {
       return sollWert1;
   }

   public void setSollWert1(String sollWert1) {
       ReadText.sollWert1 = sollWert1;
   }


          
//..........................
  new ArrayList<String>(Arrays.asList(line.split(";")));

                String[] parts = line.split(";");

                System.out.println(parts[0]);
                System.out.println(parts[1]);
                System.out.println(parts[2]);
                System.out.println(parts[3]);
}
// AB HIER KOMMEN DIE NULLEN

           System.out.println("Auftrag: " + sollAuftrag);

           System.out.println("Unterauftrag: " + sollQuote);

           System.out.println("Bogen: " + sollBogen);

           System.out.println("Fassung: " + sollFassung);
 
Hey,

hab es hinbekommen. ABER wenn ich aus einer anderen Klasse die Strings aufrufen will erhalte ich nur null, den Aufruf versuche ich mittels:

Java:
        System.out.println("Auftrag: " + super.getSollAuftrag1());
        System.out.println("Quote: " + super.getSollQuote1());
        System.out.println("Teil: " + super.getSollTeil1());
        System.out.println("Stueck: " + super.getSollStueck1());

Was kann man daran ändern? Glaube ich muss erst irgendwie die andere Klasse ausführen oder so das die sich die Daten aus dem Textfile holt oder so 🙁

Java:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

public class ReadText extends Vergleich {

    public static String sollAuftrag1;
    public static String sollQuote1;
    public static String sollTeil1;
    public static String sollStueck1;
    public static String parts;

    public static String getParts() {
        return parts;
    }

    public static void setParts(String parts) {
        ReadText.parts = parts;
    }

    protected String getSollAuftrag1() {
        return sollAuftrag1;
    }

    protected void setSollAuftrag1(String sollAuftrag) {
        ReadText.sollAuftrag1 = sollAuftrag;
    }

    public String getSollQuote1() {
        return sollQuote1;
    }

    public void setSollQuote1(String sollQuote) {
        ReadText.sollQuote1 = sollQuote;
    }

    public String getSollTeil1() {
        return sollTeil1;
    }

    public void setSollTeil1(String sollTeil) {
        ReadText.sollTeil1 = sollTeil;
    }

    public String getSollStueck1() {
        return sollStueck1;
    }

    public void setSollStueck1(String sollStueck) {
        ReadText.sollStueck1 = sollStueck;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        BufferedReader br = null;

        String file_at_path_to_desktop = System.getProperty("user.home") + "\\" + "Desktop" + "\\" + "SollAuftrag.txt";

        try {

            br = new BufferedReader(new FileReader(new File(file_at_path_to_desktop)));

            String line = null;

            while ((line = br.readLine()) != null) {

                new ArrayList<String>(Arrays.asList(line.split(";")));

                String[] parts = line.split(";");

                sollAuftrag1 = (parts[0]);
                sollQuote1 = (parts[1]);
                sollTeil1 = (parts[0]);
                sollStueck1 = (parts[1]);

            }

        } catch (FileNotFoundException e) {

            e.printStackTrace();

        } catch (IOException e) {

            e.printStackTrace();

        } finally {

            if (br != null) {

                try {

                    br.close();

                } catch (IOException e) {

                    e.printStackTrace();

                }

            }

        }

        System.out.println("Auftrag: " + sollAuftrag1);

        System.out.println("Unterauftrag: " + sollQuote1);

        System.out.println("Teil: " + sollTeil1);

        System.out.println("Stueck: " + sollStueck1);
       

    }

}
 
1. Mache mal alle public static Variablen private unfd streiche das static. So wie du die Klasse ReadText verwendest, hat das ganze nix mit OOP zu tun. Dann packe die Logik aus der public static void main in eine Instanzmethode, die dann die privaten Instanzvariablen setzt, die wiederum über die getter beschafft werden können.
2. Aus welcher Klasse stammen denn die ersten 4 Zeilen? Hinweis: es ist sinnlos, Codezeilen aus dem Methoden- und Klassenkontext zu reissen, und hier zu posten. Das hilft höchstens bei Syntaxfehlern.
Hab jetzt ne schöne ArrayListe erstellt
3. Da musste ich schon etwas schmunzeln. Du hast zwar eine erstellt, machst damit aber rein gar nix. Du kannst die ArrayListe ja noch nichtmal über einen Variablennamen ansprechen.

Wenn du jetzt denkst "Ich verstehe nicht wovon du redest", kann ich dir nur sagen: schnapp dir ein Einsteigerbuch oder google nach Java Beginner Tutorial.
 

Zurück
Oben