# Werte in Datei speichern



## Lehrling (13. Jan 2014)

Hallo,

seit kurzem bin ich dabei mir die JAVA-Programmierung interdisziplinär (Internet) beizubringen.
Habe jetzt ein für mich nützliches und lauffähiges Programm erstellt - siehe untenstehenden Quelltext.
Dieses Programm möchte ich erweitern und zwar sollen die Array-Werte in eine separate Datei gespeichert werden, bisher sind meine derartigen Versuche leider gescheitert.
Es währe prima wenn mir jemand helfen könnte.
Quelltext:

import java.util.*;
import java.io.*;
import java.awt.* ;
import java.awt.event.*;
import javax.swing.*;
// Die Packages mit den benötigten Klassen wurden importiert
// Erstellen einer Klasse mit dem Namen Wochenmengen unter Nutzung der importierten Klassen 
public class Wochenmengen extends JFrame implements ActionListener
{
  JLabel heading    = new JLabel("Eingabe der neuen Wochenmengen vom :");// Erstellung eines Labels-Objects mit der gewünschten Darstellung
                                                                        // (Dem Konstruktor wird der String "Eingabe der neuen Lottozahlen" übertragen)
                                                                        // JLabel ist die Klasse mit allen erforderlichen Methoden
                                                                        // heading ist die Referenzvariable
  JLabel datLabel   = new JLabel("Datum eingeben:   ");
  JLabel erstLabel  = new JLabel("ProduktA Menge eingeben: ");
  JLabel zweiLabel  = new JLabel("ProduktB Menge eingeben: ");
  JLabel dreiLabel  = new JLabel("ProduktC Menge eingeben: ");
  JLabel vierLabel  = new JLabel("ProduktD Menge eingeben: ");
  JLabel fuenLabel  = new JLabel("ProduktE Menge eingeben: ");
  JLabel perLabel   = new JLabel("Array-Werte: ");

  JTextField inDat  = new JTextField( 6 ); // Erstellung eines Text-Eingabefeld-Objektes mit der gewünschten Feldlänge
  JTextField inErst = new JTextField( 2 );
  JTextField inZwei = new JTextField( 2 );
  JTextField inDrei = new JTextField( 2 );
  JTextField inVier = new JTextField( 2 );
  JTextField inFuen = new JTextField( 2 );

  JTextField outPer = new JTextField( 6 ); // Erstellung eines Text-Ausgabefeldes mit der gewünschten Feldlänge

  JButton    doit   = new JButton("speichern!");

  JPanel hedPanel   = new JPanel();
  JPanel datPanel   = new JPanel();
  JPanel erstPanel  = new JPanel();
  JPanel zweiPanel  = new JPanel();
  JPanel dreiPanel  = new JPanel();
  JPanel vierPanel  = new JPanel();  
  JPanel fuenPanel  = new JPanel();
  JPanel perPanel   = new JPanel();
  JPanel butPanel   = new JPanel();

  String quers;                // String-Referenzvariable definieren - für das output-Ergebnis
  String datZ, ersteZ, zweiteZ, dritteZ, vierteZ, fuenfteZ;  
  public Wochenmengen()
  {
    setTitle( "Wochenmengen" );          // Mit set Title wird die Frame-Überschrift gesetzt btw. als String übergeben
    outPer.setEditable( false );        // hier wird festgelegt das der Ausgabewert im Ausgabe-Textfeld von aussen nicht geändert werden kann
    setLayout( new FlowLayout() );

    // den Panels Komponenten hinzufügen und zwar die Labels und die Textfelder
    hedPanel.add( heading );
    datPanel.add( datLabel );
    datPanel.add( inDat ); 
    erstPanel.add( erstLabel );
    erstPanel.add( inErst );
    zweiPanel.add( zweiLabel );
    zweiPanel.add( inZwei );
    dreiPanel.add( dreiLabel );
    dreiPanel.add( inDrei );
    vierPanel.add( vierLabel );
    vierPanel.add( inVier );  
    fuenPanel.add( fuenLabel );
    fuenPanel.add( inFuen );

    perPanel.add( perLabel );
    perPanel.add( outPer );
    butPanel.add( doit );

    // dem Frame Panels hinzufügen
    add( hedPanel );
    add( heading );
    add( datPanel );
    add( erstPanel );
    add( zweiPanel );
    add( dreiPanel );
    add( vierPanel );  
    add( fuenPanel );
    add( perPanel );
    add( doit );
    add( butPanel );

    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    doit.addActionListener( this );                   // hier wird der Action-Listener (Überbringer) des Buttons definiert 
  }

                               // Die Application   -  also ein ganz neuer Programmteil

    public void actionPerformed( ActionEvent evt) // betrachte die Information in ActionEvent 
  {

    String userIn ;
    userIn    = inDat.getText() ;
    datZ      = userIn;
    userIn    = inErst.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inErst)
    ersteZ    = userIn;
    userIn    = inZwei.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inZwei)
    zweiteZ   = userIn;
    userIn    = inDrei.getText()  ;
    dritteZ   = userIn;
    userIn    = inVier.getText()  ;
    vierteZ   = userIn;
    userIn    = inFuen.getText()  ;
    fuenfteZ  = userIn;

    String[][] array = new String[1][6];  // Array erstellen und mit Werte füllen
    array[0][0] = datZ;
    array[0][1] = ersteZ;
    array[0][2] = zweiteZ;
    array[0][3] = dritteZ;
    array[0][4] = vierteZ;
    array[0][5] = fuenfteZ;

    quers = array[0][0];      
    outPer.setText(quers);                    // setzt ihn sichtbar mittels outPer in den Frame
    repaint();
    }

    public static void main ( String[] args )
    {
    Wochenmengen rahmen  = new Wochenmengen() ;
    rahmen.setSize( 280, 600 );
    rahmen.setResizable( false );
    rahmen.setVisible( true );
    }
    }


----------



## Lehrling (16. Jan 2014)

Hallo,
ich habe im Internet recherchiert und habe eine Routine zum speichern gefunden, kann das Programm jetzt aber nicht mehr compalieren, wo liegt denn der Fehler ?
Es erscheint diese Fehlermeldung:
 Wochenmengen.java:126:error:cannot find Symbol writer.write(array[][]+";");

Wie kann man das Problem lösen ?

Der Quelltext lautet jetzt:
import java.util.*;
import java.io.*;
import java.awt.* ;
import java.awt.event.*;
import javax.swing.*;
// Die Packages mit den benötigten Klassen wurden importiert
// Erstellen einer Klasse mit dem Namen Wochenmengen unter Nutzung der importierten Klassen 
public class Wochenmengen extends JFrame implements ActionListener
{
  JLabel heading    = new JLabel("Eingabe der neuen Wochenmengen vom :");// Erstellung eines Labels-Objects mit der gewünschten Darstellung
                                                                        // (Dem Konstruktor wird der String "Eingabe der neuen Lottozahlen" übertragen)
                                                                        // JLabel ist die Klasse mit allen erforderlichen Methoden
                                                                        // heading ist die Referenzvariable
  JLabel datLabel   = new JLabel("Datum eingeben:   ");
  JLabel erstLabel  = new JLabel("ProduktA Menge eingeben: ");
  JLabel zweiLabel  = new JLabel("ProduktB Menge eingeben: ");
  JLabel dreiLabel  = new JLabel("ProduktC Menge eingeben: ");
  JLabel vierLabel  = new JLabel("ProduktD Menge eingeben: ");
  JLabel fuenLabel  = new JLabel("ProduktE Menge eingeben: ");
  JLabel perLabel   = new JLabel("Array-Werte: ");

  JTextField inDat  = new JTextField( 6 ); // Erstellung eines Text-Eingabefeld-Objektes mit der gewünschten Feldlänge
  JTextField inErst = new JTextField( 2 );
  JTextField inZwei = new JTextField( 2 );
  JTextField inDrei = new JTextField( 2 );
  JTextField inVier = new JTextField( 2 );
  JTextField inFuen = new JTextField( 2 );

  JTextField outPer = new JTextField( 6 ); // Erstellung eines Text-Ausgabefeldes mit der gewünschten Feldlänge

  JButton    doit   = new JButton("speichern!");

  JPanel hedPanel   = new JPanel();
  JPanel datPanel   = new JPanel();
  JPanel erstPanel  = new JPanel();
  JPanel zweiPanel  = new JPanel();
  JPanel dreiPanel  = new JPanel();
  JPanel vierPanel  = new JPanel();  
  JPanel fuenPanel  = new JPanel();
  JPanel perPanel   = new JPanel();
  JPanel butPanel   = new JPanel();

  String quers;                // String-Referenzvariable definieren - für das output-Ergebnis
  String datZ, ersteZ, zweiteZ, dritteZ, vierteZ, fuenfteZ;  
  public Wochenmengen()
  {
    setTitle( "Wochenmengen" );          // Mit set Title wird die Frame-Überschrift gesetzt btw. als String übergeben
    outPer.setEditable( false );        // hier wird festgelegt das der Ausgabewert im Ausgabe-Textfeld von aussen nicht geändert werden kann
    setLayout( new FlowLayout() );

    // den Panels Komponenten hinzufügen und zwar die Labels und die Textfelder
    hedPanel.add( heading );
    datPanel.add( datLabel );
    datPanel.add( inDat ); 
    erstPanel.add( erstLabel );
    erstPanel.add( inErst );
    zweiPanel.add( zweiLabel );
    zweiPanel.add( inZwei );
    dreiPanel.add( dreiLabel );
    dreiPanel.add( inDrei );
    vierPanel.add( vierLabel );
    vierPanel.add( inVier );  
    fuenPanel.add( fuenLabel );
    fuenPanel.add( inFuen );

    perPanel.add( perLabel );
    perPanel.add( outPer );
    butPanel.add( doit );

    // dem Frame Panels hinzufügen
    add( hedPanel );
    add( heading );
    add( datPanel );
    add( erstPanel );
    add( zweiPanel );
    add( dreiPanel );
    add( vierPanel );  
    add( fuenPanel );
    add( perPanel );
    add( doit );
    add( butPanel );

    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    doit.addActionListener( this );                   // hier wird der Action-Listener (Überbringer) des Buttons definiert 
  }

                               // Die Application   -  also ein ganz neuer Programmteil

    public void actionPerformed( ActionEvent evt) // betrachte die Information in ActionEvent 
  {

    String userIn ;
    userIn    = inDat.getText() ;
    datZ      = userIn;
    userIn    = inErst.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inErst)
    ersteZ    = userIn;
    userIn    = inZwei.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inZwei)
    zweiteZ   = userIn;
    userIn    = inDrei.getText()  ;
    dritteZ   = userIn;
    userIn    = inVier.getText()  ;
    vierteZ   = userIn;
    userIn    = inFuen.getText()  ;
    fuenfteZ  = userIn;

    String[][] array = new String[1][6];  // Array erstellen und mit Werte füllen
    array[0][0] = datZ;
    array[0][1] = ersteZ;
    array[0][2] = zweiteZ;
    array[0][3] = dritteZ;
    array[0][4] = vierteZ;
    array[0][5] = fuenfteZ;

    quers = array[0][0];      
    outPer.setText(quers);                    // setzt ihn sichtbar mittels outPer in den Frame
    repaint();
    }
    public void save (File Wochenmenge) 
	{
		BufferedWriter writer = new BufferedWriter(new FileWriter(Wochenmenge));

		for (int x = 0; x < 1; x++)
        {
        	for (int y = 0; y < 9; y++)
        	{
        		                  writer.write(array[x][y] + ";");   //mit Komma getrennte Werte
              }
              writer.newLine(); // <-----------------
         }
         writer.close();

      }


    public static void main ( String[] args )
    {
    Wochenmengen rahmen  = new Wochenmengen() ;
    rahmen.setSize( 280, 600 );
    rahmen.setResizable( false );
    rahmen.setVisible( true );
    }
    }


----------



## VfL_Freak (16. Jan 2014)

Moin,

nutze bitte die Java-Tags ... es steht doch nun wirklich rot und groß genug über dem Editor :noe:

So kann man nämlich die zeile 129 schlecht finden (und es wird wohl keiner anfangen zu zählen) !!

Aber ein "writer" habe habe icin Deinem Code auch per Suche nicht gefunden 

Gruß
Klaus


----------



## Lehrling (16. Jan 2014)

okay


----------



## VfL_Freak (16. Jan 2014)

aha .... und immer noch ohne Tags ;(

EDIT:

```
writer.write(array[x][y] + ";");
```
das "write" erwartet einen String, den es schreiben kann, allenfalls ein char-Array (char[]) !!
docs.oracle.com/javase/7/docs/api/

Gruß
Klaus


----------



## Lehrling (16. Jan 2014)

```
import java.util.*;
import java.io.*;
import java.awt.* ;
import java.awt.event.*;
import javax.swing.*;
// Die Packages mit den benötigten Klassen wurden importiert
// Erstellen einer Klasse mit dem Namen Wochenmengen unter Nutzung der importierten Klassen 
public class Wochenmengen extends JFrame implements ActionListener
{
  JLabel heading    = new JLabel("Eingabe der neuen Wochenmengen vom :");// Erstellung eines Labels-Objects mit der gewünschten Darstellung
                                                                        // (Dem Konstruktor wird der String "Eingabe der neuen Lottozahlen" übertragen)
                                                                        // JLabel ist die Klasse mit allen erforderlichen Methoden
                                                                        // heading ist die Referenzvariable
  JLabel datLabel   = new JLabel("Datum eingeben:   ");
  JLabel erstLabel  = new JLabel("ProduktA Menge eingeben: ");
  JLabel zweiLabel  = new JLabel("ProduktB Menge eingeben: ");
  JLabel dreiLabel  = new JLabel("ProduktC Menge eingeben: ");
  JLabel vierLabel  = new JLabel("ProduktD Menge eingeben: ");
  JLabel fuenLabel  = new JLabel("ProduktE Menge eingeben: ");
  JLabel perLabel   = new JLabel("Array-Werte: ");

  JTextField inDat  = new JTextField( 6 ); // Erstellung eines Text-Eingabefeld-Objektes mit der gewünschten Feldlänge
  JTextField inErst = new JTextField( 2 );
  JTextField inZwei = new JTextField( 2 );
  JTextField inDrei = new JTextField( 2 );
  JTextField inVier = new JTextField( 2 );
  JTextField inFuen = new JTextField( 2 );
  
  JTextField outPer = new JTextField( 6 ); // Erstellung eines Text-Ausgabefeldes mit der gewünschten Feldlänge

  JButton    doit   = new JButton("speichern!");

  JPanel hedPanel   = new JPanel();
  JPanel datPanel   = new JPanel();
  JPanel erstPanel  = new JPanel();
  JPanel zweiPanel  = new JPanel();
  JPanel dreiPanel  = new JPanel();
  JPanel vierPanel  = new JPanel();  
  JPanel fuenPanel  = new JPanel();
  JPanel perPanel   = new JPanel();
  JPanel butPanel   = new JPanel();

  String quers;                // String-Referenzvariable definieren - für das output-Ergebnis
  String datZ, ersteZ, zweiteZ, dritteZ, vierteZ, fuenfteZ;  
  public Wochenmengen()
  {
    setTitle( "Wochenmengen" );          // Mit set Title wird die Frame-Überschrift gesetzt btw. als String übergeben
    outPer.setEditable( false );        // hier wird festgelegt das der Ausgabewert im Ausgabe-Textfeld von aussen nicht geändert werden kann
    setLayout( new FlowLayout() );

    // den Panels Komponenten hinzufügen und zwar die Labels und die Textfelder
    hedPanel.add( heading );
    datPanel.add( datLabel );
    datPanel.add( inDat ); 
    erstPanel.add( erstLabel );
    erstPanel.add( inErst );
    zweiPanel.add( zweiLabel );
    zweiPanel.add( inZwei );
    dreiPanel.add( dreiLabel );
    dreiPanel.add( inDrei );
    vierPanel.add( vierLabel );
    vierPanel.add( inVier );  
    fuenPanel.add( fuenLabel );
    fuenPanel.add( inFuen );
    
    perPanel.add( perLabel );
    perPanel.add( outPer );
    butPanel.add( doit );

    // dem Frame Panels hinzufügen
    add( hedPanel );
    add( heading );
    add( datPanel );
    add( erstPanel );
    add( zweiPanel );
    add( dreiPanel );
    add( vierPanel );  
    add( fuenPanel );
    add( perPanel );
    add( doit );
    add( butPanel );

    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    doit.addActionListener( this );                   // hier wird der Action-Listener (Überbringer) des Buttons definiert 
  }

                               // Die Application   -  also ein ganz neuer Programmteil
   
    public void actionPerformed( ActionEvent evt) // betrachte die Information in ActionEvent 
  {
    
    String userIn ;
    userIn    = inDat.getText() ;
    datZ      = userIn;
    userIn    = inErst.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inErst)
    ersteZ    = userIn;
    userIn    = inZwei.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inZwei)
    zweiteZ   = userIn;
    userIn    = inDrei.getText()  ;
    dritteZ   = userIn;
    userIn    = inVier.getText()  ;
    vierteZ   = userIn;
    userIn    = inFuen.getText()  ;
    fuenfteZ  = userIn;
     
    String[][] array = new String[1][6];  // Array erstellen und mit Werte füllen
    array[0][0] = datZ;
    array[0][1] = ersteZ;
    array[0][2] = zweiteZ;
    array[0][3] = dritteZ;
    array[0][4] = vierteZ;
    array[0][5] = fuenfteZ;
        
    quers = array[0][0];      
    outPer.setText(quers);                    // setzt ihn sichtbar mittels outPer in den Frame
    repaint();
    }
    public void save (File Wochenmenge) 
	{
		BufferedWriter writer = new BufferedWriter(new FileWriter(Wochenmenge));
		
		for (int x = 0; x < 1; x++)
        {
        	for (int y = 0; y < 9; y++)
        	{
        		                  writer.write(array[x][y] + ";");   //mit Komma getrennte Werte
              }
              writer.newLine(); // <-----------------
         }
         writer.close();
 
      }

    
    public static void main ( String[] args )
    {
    Wochenmengen rahmen  = new Wochenmengen() ;
    rahmen.setSize( 280, 600 );
    rahmen.setResizable( false );
    rahmen.setVisible( true );
    }
    }
```


----------



## VfL_Freak (16. Jan 2014)

Moin,

sehr schön 

Hast Du denn _*EDIT *_meines letzten Posts gelesen?
Deine Fehlermeldung, die Du anfangs mal gepostet hast,  ist doch eindeutig !!

Gruß
Klaus


----------



## Lehrling (16. Jan 2014)

Danke für die Hilfe.
hm ... ich möchte die Arrayzeilen aber nicht als Arrayliste ausführen, sondern ich möchte nach dem Wiedereinlesen auf die einzelnen Arraywerte zugreifen können, oder verstehe ich das jetzt falsch ?
Die Arraywerte sind doch als Strings definiert ?


----------



## VfL_Freak (16. Jan 2014)

Moin,

versuch's mal so :


```
for( int x = 0; x < 1; x++ )
{
    String sTMP = "";
    for ( int y = 0; y < 9; y++ )
    {
          sTMP = array[x][y] + ";";
          writer.write( sTMP );
    }
    writer.newLine();
}
```
*ungetestet !!*

Gruß
Klaus


----------



## Lehrling (16. Jan 2014)

Hallo,
es erscheint die gleiche Fehlermeldung nur diesmal wird Zeile 129 angegeben:
Wochenmengen.java:129:error:cannot find Symbol sTMP=array[x][y]+";";
Das Wort array ist wieder markiert ...habe den Eindruck die array-werte stehen nicht zur Verfügung ?
Den Quellcode habe ich wie folgt geändert:

```
import java.util.*;
import java.io.*;
import java.awt.* ;
import java.awt.event.*;
import javax.swing.*;
// Die Packages mit den benötigten Klassen wurden importiert
// Erstellen einer Klasse mit dem Namen Wochenmengen unter Nutzung der importierten Klassen 
public class Wochenmengen extends JFrame implements ActionListener
{
  JLabel heading    = new JLabel("Eingabe der neuen Wochenmengen vom :");// Erstellung eines Labels-Objects mit der gewünschten Darstellung
                                                                        // (Dem Konstruktor wird der String "Eingabe der neuen Lottozahlen" übertragen)
                                                                        // JLabel ist die Klasse mit allen erforderlichen Methoden
                                                                        // heading ist die Referenzvariable
  JLabel datLabel   = new JLabel("Datum eingeben:   ");
  JLabel erstLabel  = new JLabel("ProduktA Menge eingeben: ");
  JLabel zweiLabel  = new JLabel("ProduktB Menge eingeben: ");
  JLabel dreiLabel  = new JLabel("ProduktC Menge eingeben: ");
  JLabel vierLabel  = new JLabel("ProduktD Menge eingeben: ");
  JLabel fuenLabel  = new JLabel("ProduktE Menge eingeben: ");
  JLabel perLabel   = new JLabel("Array-Werte: ");

  JTextField inDat  = new JTextField( 6 ); // Erstellung eines Text-Eingabefeld-Objektes mit der gewünschten Feldlänge
  JTextField inErst = new JTextField( 2 );
  JTextField inZwei = new JTextField( 2 );
  JTextField inDrei = new JTextField( 2 );
  JTextField inVier = new JTextField( 2 );
  JTextField inFuen = new JTextField( 2 );
  
  JTextField outPer = new JTextField( 6 ); // Erstellung eines Text-Ausgabefeldes mit der gewünschten Feldlänge

  JButton    doit   = new JButton("speichern!");

  JPanel hedPanel   = new JPanel();
  JPanel datPanel   = new JPanel();
  JPanel erstPanel  = new JPanel();
  JPanel zweiPanel  = new JPanel();
  JPanel dreiPanel  = new JPanel();
  JPanel vierPanel  = new JPanel();  
  JPanel fuenPanel  = new JPanel();
  JPanel perPanel   = new JPanel();
  JPanel butPanel   = new JPanel();

  String quers;                // String-Referenzvariable definieren - für das output-Ergebnis
  String datZ, ersteZ, zweiteZ, dritteZ, vierteZ, fuenfteZ;  
  public Wochenmengen()
  {
    setTitle( "Wochenmengen" );          // Mit set Title wird die Frame-Überschrift gesetzt btw. als String übergeben
    outPer.setEditable( false );        // hier wird festgelegt das der Ausgabewert im Ausgabe-Textfeld von aussen nicht geändert werden kann
    setLayout( new FlowLayout() );

    // den Panels Komponenten hinzufügen und zwar die Labels und die Textfelder
    hedPanel.add( heading );
    datPanel.add( datLabel );
    datPanel.add( inDat ); 
    erstPanel.add( erstLabel );
    erstPanel.add( inErst );
    zweiPanel.add( zweiLabel );
    zweiPanel.add( inZwei );
    dreiPanel.add( dreiLabel );
    dreiPanel.add( inDrei );
    vierPanel.add( vierLabel );
    vierPanel.add( inVier );  
    fuenPanel.add( fuenLabel );
    fuenPanel.add( inFuen );
    
    perPanel.add( perLabel );
    perPanel.add( outPer );
    butPanel.add( doit );

    // dem Frame Panels hinzufügen
    add( hedPanel );
    add( heading );
    add( datPanel );
    add( erstPanel );
    add( zweiPanel );
    add( dreiPanel );
    add( vierPanel );  
    add( fuenPanel );
    add( perPanel );
    add( doit );
    add( butPanel );

    setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
    doit.addActionListener( this );                   // hier wird der Action-Listener (Überbringer) des Buttons definiert 
  }

                               // Die Application   -  also ein ganz neuer Programmteil
   
    public void actionPerformed( ActionEvent evt) // betrachte die Information in ActionEvent 
  {
    
    String userIn ;
    userIn    = inDat.getText() ;
    datZ      = userIn;
    userIn    = inErst.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inErst)
    ersteZ    = userIn;
    userIn    = inZwei.getText()  ;             // rufe die getText-Methode auf (holt sich den Wert von inZwei)
    zweiteZ   = userIn;
    userIn    = inDrei.getText()  ;
    dritteZ   = userIn;
    userIn    = inVier.getText()  ;
    vierteZ   = userIn;
    userIn    = inFuen.getText()  ;
    fuenfteZ  = userIn;
     
    String[][] array = new String[1][6];  // Array erstellen und mit Werte füllen
    array[0][0] = datZ;
    array[0][1] = ersteZ;
    array[0][2] = zweiteZ;
    array[0][3] = dritteZ;
    array[0][4] = vierteZ;
    array[0][5] = fuenfteZ;
        
    quers = array[0][0];
          
    outPer.setText(quers);                    // setzt ihn sichtbar mittels outPer in den Frame
    repaint();
    }   
    
    public void save (File Wochenmenge) 
	{
		BufferedWriter writer = new BufferedWriter(new FileWriter(Wochenmenge));
		
		for (int x = 0; x < 1; x++)
        {
                String sTMP = "";
        	for (int y = 0; y < 6; y++)
        	{
                sTMP = array[x][y] + ";";
        	writer.write(sTMP);                   //mit Komma getrennte Werte
              }
              writer.newLine(); // <-----------------
         }
         writer.close();

      }

    
    public static void main ( String[] args )
    {
    Wochenmengen rahmen  = new Wochenmengen() ;
    rahmen.setSize( 280, 600 );
    rahmen.setResizable( false );
    rahmen.setVisible( true );
    }
    }
```


----------



## VfL_Freak (17. Jan 2014)

Moin,

ah - jetzt (hatte bislang nur auf den Writer geschaut) .....

Dein *array* ist innerhalb von *save* gar nicht bekannt, sondern nur lokal im ActionListener darüber !!

Du musst es so deklarieren, dass es innerhalb der Methode auch bekannt ist!
Allerdings finde ich keinen Aufruf von *save* ...

Gruß
Klaus


----------



## Lehrling (17. Jan 2014)

Hallo,
 wie realisiert man das denn?
Muss ein temporärer und public declarierter Speicher eingerichtet werden auf den man dann zugreifen kann ?


----------



## VfL_Freak (17. Jan 2014)

Moin,



Lehrling hat gesagt.:


> Hallo,
> wie realisiert man das denn?
> Muss ein temporärer und public declarierter Speicher eingerichtet werden auf den man dann zugreifen kann ?



wie schon geschrieben:


VfL_Freak hat gesagt.:


> Allerdings finde ich keinen Aufruf von *save* ...


Solange die Funktion nicht benutzt wird, ist es eigentlich zielmlich egal :noe:

Gruß
Klaus


----------



## Lehrling (17. Jan 2014)

Hallo,

meine bisher erworbenen Java-Kenntnisse reichen offensichtlich (noch) nicht um das "Array-speichern Problem" eigenständig zu lösen, daher währe ein Beispiel sicher sehr hilfreich.


----------



## VfL_Freak (17. Jan 2014)

Moin,

poste mal Deinen gesamten Code, dann sagen wir hier auch was dazu!

Gruß
Klaus


----------



## Lehrling (18. Jan 2014)

Hallo,

1. den gesamten (lauffähigen) Code habe ich mit meinem ersten Beitrag am 13.01. um 17:15 Uhr gepostet, der ist aber noch ohne Speicherroutine.
2. der jetzige (nicht lauffähige) Code ist identisch mit meinem zuletzt geposteten Code.
3. habe gestern eine  auch für "Selbstlerner" verständliche Beschreibung über das Thema Datenströme unter Java im Internet gefunden, diese Beschreibung werde ich jetzt mal - außerplanmäßig - studieren.
4. Wenn ich zumindest ein Beispiel bezogen auf meine Anwendung von Euch bekommen könnte und das dann anhand dieser Beschreibung nachvollziehen könnte währe das optimal.


----------



## VfL_Freak (18. Jan 2014)

Moin,

bspw. könntest Du Dein Array an der Stelle, wo Du "save" aufrufen willst, als weiteren Parameter an die Funktion übergeben ...

Wozu ist das Array überhaupt 2-dimensional (also als "String[][]") deklariert ???:L
Du nutzt ja scheinbar eh nur die 2-te Dimension ...

An der dann aufrufenden Stelle muss natürlich sowohl das Array als auch dein File-Objekt ("File Wochenmenge") deklariert und bekannt sein !

Gruß
Klaus


----------

