Ausgabe in Datei - über Variable gesteuert

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Das Programm gibt in eine Datei aus. Grundsätzlich funktioniert es auch aber...
Das Ouput Directory und der Name der Ausgabe File soll in einer INI Datei hinterlegt werden. Die Werte werden auch richtig eingelesen, jedoch klappt die Ausgabe nicht!?

outdir und outfile sind die Parameter für die Ausgabe...


Code:
import java.io.*; 

// ************************************************************************** 
// Definition class
// **************************************************************************
public class AfiRead4 { 
String arrayinno[] = new String [1000]; 
int records; 	 
String outdir, outfile;


// ************************************************************************** 
// Main
// **************************************************************************
public static void main(String[] args) { 
AfiRead4 dl = new AfiRead4();
dl.LoadIni();
dl.PrtDet(); 
 
} 


// **************************************************************************
// Load Ini
// **************************************************************************
  public void LoadIni() {
  try {
  BufferedReader ini = new BufferedReader(new FileReader("AFI.INI")); 
  String satzini;
  String set = "_";
  int idx = 0;
      
      while((satzini = ini.readLine()) != null)  
      {   
      try { 
          set = satzini.substring(0,7);
          }
          catch(StringIndexOutOfBoundsException s) {}
          
          // System.out.println(satzini); 
          
          if (set.equals("OUT_DIR")) {
           	outdir = satzini.substring(8,30);
          }
          
          if (set.equals("OUT_FIL")) {
          	outfile = satzini.substring(8,30);
          }
          System.out.println(set + " " + outdir + " " + outfile); 
        }
        
      ini.close(); // Close File
      records = idx; 
      } 
       catch(FileNotFoundException fnfe) { 
        System.out.println("Datei nicht gefunden!"); 
      }      
          
      catch(IOException ioe) { 
        System.out.println("Fehler beim Lesen!");  
        }
     }
     
// **************************************************************************
// Load Records in Array
// **************************************************************************
  public AfiRead4() {
  try {
  BufferedReader in1 = new BufferedReader(new FileReader("VendingMachines.txt")); 
  String satz1;
  int idx = 0;
      
      while((satz1 = in1.readLine()) != null)  
      {   
      try { 
          arrayinno[idx] = satz1.substring(0,6);
          }
          catch(StringIndexOutOfBoundsException s) { 
          }
        idx ++;
        }
        
      in1.close(); // Close File
      records = idx; 
      } 
       catch(FileNotFoundException fnfe) { 
        System.out.println("Datei nicht gefunden!"); 
      }      
          
      catch(IOException ioe) { 
        System.out.println("Fehler beim Lesen!");  
        }
     }
     

// **************************************************************************
// Print Inno and Detail records when inno in Array exists.
// **************************************************************************
     public void PrtDet() { 
      try { 
      BufferedReader in2 = new BufferedReader(new FileReader("AFI.DE1")); 
      // BufferedWriter out = new BufferedWriter (new FileWriter ("AfiOutput.txt"));
      BufferedWriter out = new BufferedWriter (new FileWriter (outdir + outfile));
      String satz2, inno, strmano;
      int idx;
      boolean foundObj = false;
      
        while((satz2 = in2.readLine()) != null) // Loop1 
        // Read Input File while not eof
        {  
          try { 
            strmano = satz2.substring(6,12); 

            if (strmano.equals("A MANO")) {
            // Check Object
            inno = satz2.substring(13,19); 
            foundObj = false;
            // *System.out.println("Suche Objekt " + inno + " in Array...");
            
            for (idx = 0; idx < records; idx ++) {
               // Search Inno in Array 
               //* System.out.println("Vergleiche " + arrayinno[idx] + " mit " + inno);
               try
                 {
                 if (arrayinno[idx].equals(inno)) {
                    //* System.out.println("Objekt " + inno + " in Tabelle gefunden!");	
                    foundObj = true;
                    //* System.out.println("Variable foundObj: " + foundObj);
                    //* System.out.println("------------------------------");
                    break;                  
                    }
                 }
                 catch(NullPointerException npe) {}  
                 } // for (idx = 0; idx < records; idx ++) 
                 	

            } // if (strmano.equals("A MANO")) 
              if(foundObj == true) { 
              // Object found in Array, print Detail Records for Object
                out.write(satz2);
                      
                // *out.flush();
                out.write(System.getProperty("line.separator")); 
                
                while((satz2 = in2.readLine()) != null)  
                // Print Detail Records for Object 
                {
                  out.write(satz2);
                  //*out.flush();
                  out.write(System.getProperty("line.separator")); 
                  
                    try {
                    strmano = satz2.substring(6,12);
 
                  if (strmano.equals("E MANO")) {
                    break;
                    }
                  
                  }
                  catch(StringIndexOutOfBoundsException s) {} 
                  catch(NullPointerException npe) {} 
                }  // Loop End
                
                foundObj = false;
                // *System.out.println("E N D E: " + "Objekt: " + "-----------"); 	

              }
            }
           
            catch(StringIndexOutOfBoundsException s) { 
            }
          } 
        out.close(); // close File
        in2.close(); // Close File
        }
        catch(FileNotFoundException fnfe) { 
          System.out.println("Datei nicht gefunden!"); 
        }      
          
        catch(IOException ioe) { 
          System.out.println("Fehler beim Lesen!"); 
        }      
        
      }
   }
 
G

Guest

Gast
Die Datensätze werden nicht in die Datei geschrieben. (outdir + outfile)

Code:
  BufferedWriter out = new BufferedWriter (new FileWriter (outdir + outfile));
 
G

Guest

Gast
Hat jemand noch eine Idee woran das liegen könnte? :roll:
 

The_S

Top Contributor
Code:
                while((satz2 = in2.readLine()) != null)  
                // Print Detail Records for Object 
                { 
                  out.write(satz2); 
                  //*out.flush(); 
                  out.write(System.getProperty("line.separator")); 
                  
                    try { 
                    strmano = satz2.substring(6,12); 

                  if (strmano.equals("E MANO")) { 
                    break; 
                    } 
                  
                  } 
                  catch(StringIndexOutOfBoundsException s) {} 
                  catch(NullPointerException npe) {} 
                }

Sehe ich das richtig, dass dieser Teil dafür sorgt, dass alles in einer Schleife in deine Datei geschrieben wird? (Ich frage, weil dein Code sehr unübersichtlich ist.) So überschreibst du nämlich immer wieder den alten Inhalt deiner Datei! Geb mal deinen FileWriter zusätzlich zum Pfad noch ein true mit (damit hängt er neue Daten an)
 
G

Guest

Gast
Hobbit_Im_Blutrausch hat gesagt.:
Code:
                while((satz2 = in2.readLine()) != null)  
                // Print Detail Records for Object 
                { 
                  out.write(satz2); 
                  //*out.flush(); 
                  out.write(System.getProperty("line.separator")); 
                  
                    try { 
                    strmano = satz2.substring(6,12); 

                  if (strmano.equals("E MANO")) { 
                    break; 
                    } 
                  
                  } 
                  catch(StringIndexOutOfBoundsException s) {} 
                  catch(NullPointerException npe) {} 
                }

Sehe ich das richtig, dass dieser Teil dafür sorgt, dass alles in einer Schleife in deine Datei geschrieben wird? (Ich frage, weil dein Code sehr unübersichtlich ist.) So überschreibst du nämlich immer wieder den alten Inhalt deiner Datei! Geb mal deinen FileWriter zusätzlich zum Pfad noch ein true mit (damit hängt er neue Daten an)


1.)
Die Schleifenbedingung ist -wie du selber weist- solange kein eof erreicht wurde. Irgendwann ist strmano="E MANO" und dann soll die Schleife verlassen werden.

2.)
Die Datei soll den alten Inhalt überschreiben.
Trotzdem danke für den Hinweis.
 

The_S

Top Contributor
Wenn immer alles überschrieben werden soll, dann hast du am Ende einen Zeilenumbruch in deiner Textdatei und sonst nichts
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
O Ausgabe als .txt Datei speichern mit FileWriter Java Basics - Anfänger-Themen 2
C Input/Output Hilfe..txt Datei zeile verändern und Ausgabe ..Hilfe Java Basics - Anfänger-Themen 11
H Programm zur Ausgabe von Datei und Pfad Java Basics - Anfänger-Themen 7
9 Ausgabe als pdbqt-Datei Java Basics - Anfänger-Themen 4
S Erste Schritte Kleine Problem mit Ausgabe in eine Datei Java Basics - Anfänger-Themen 11
L Eclipse - ausgabe in einem Datei umleitem Java Basics - Anfänger-Themen 11
d34dl1nes Suche aus Datei, anschließende Ausgabe Java Basics - Anfänger-Themen 2
D Ausgabe in Datei ( bitte helfen ) Java Basics - Anfänger-Themen 13
D Ausgabe in Datei (Hilfe) Java Basics - Anfänger-Themen 12
Semox Umwandlung von Sonderzeichen in HTML-Datei mit Ausgabe Java Basics - Anfänger-Themen 7
G Ausgabe erfolgt in JAR-Datei nicht Java Basics - Anfänger-Themen 3
W Ausgabe in Datei umleiten Java Basics - Anfänger-Themen 4
H Hilfe bei Ausgabe in einer Datei. Java Basics - Anfänger-Themen 5
D ausgabe von daten in txt/csv datei Java Basics - Anfänger-Themen 5
M ausgabe in datei Java Basics - Anfänger-Themen 4
G Ausgabe in Datei Java Basics - Anfänger-Themen 6
B Ausgabe in bestimmte Zeile einer html Datei Java Basics - Anfänger-Themen 12
J Servlet - Datei auf Server speichern und Ausgabe Java Basics - Anfänger-Themen 5
C Ausgabe in einer Datei Java Basics - Anfänger-Themen 2
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39

Ähnliche Java Themen

Neue Themen


Oben