S 
		
				
			
		Spellsleeper
Gast
Hallo ich war mit meiner positiven Prognose etwas vorschnell.
Ich habe ein Programm geschrieben das als .txt extrahierte ERP-Objekte trennen soll.
Alles schön und gut,dies tut es auch soweit nur das beim letzten Objekt zwar die .txt-Datei
erstellt wird aber diese keinen Inhalt enthält. Könnt ihr mir sagen wie ich den Writer so beende
das diese Datei geschrieben wird?:bahnhof:
	
	
	
	
	
		
	
			
			Ich habe ein Programm geschrieben das als .txt extrahierte ERP-Objekte trennen soll.
Alles schön und gut,dies tut es auch soweit nur das beim letzten Objekt zwar die .txt-Datei
erstellt wird aber diese keinen Inhalt enthält. Könnt ihr mir sagen wie ich den Writer so beende
das diese Datei geschrieben wird?:bahnhof:
		Java:
	
		public void read(String oldPath) {
		String temp;
		
		boolean objectEnd=false;
		boolean realEnd=false;
		File directory=new File("C:\\NavObjekte");
		if(!directory.exists()){
		directory.mkdir();}
		Writer writer = new Writer();
		try {
			BufferedReader br = new BufferedReader(new FileReader(new File(oldPath)));
			int emptyLines = 0;
			do {
				temp = br.readLine();
				
				
				
				if (temp.equals(null)) {
					emptyLines++;
				}
				if (temp.contains("OBJECT") && !(temp.contains(" OBJECT"))) {
					objectEnd=false;
					int index1=temp.indexOf(" ");
					int index2=temp.indexOf(" ",index1+1);
					int index3=temp.indexOf(" ",index2+1);
					String temp1=temp.substring(index1, index2);
					temp1+=(temp.substring(index2,index3));
					writer.produce("C:\\NavObjekte\\" + temp1.trim()+".txt");
					System.out.println(temp1);
				}
				if (temp.contains("End."))
					
				{
					emptyLines = 0;
					objectEnd=true;
				}
				
				
				if(objectEnd==true&&emptyLines>=5){
					realEnd=true;
				}
				writer.write(temp);
				
			} while (!(realEnd==true && temp==null));
				writer.end();
		} catch (FileNotFoundException fnf) {
			System.out.println("Datei konnte nicht gefunden werden(fnf).");
			fnf.printStackTrace();
		} catch (IOException e) {
			System.out.println("IO-Fehler!!!");
			e.printStackTrace();
		}
		
	}
}
package version1;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class Writer {
	public BufferedWriter x;
	public void produce(String newPath) {
		
		try{if (x != null) {
			x.flush();
			x.close();}
			
			BufferedWriter bw = new BufferedWriter(new FileWriter(new File(
					newPath)));
			x = bw;}catch(IOException io){
				io.printStackTrace();
			}
		
		
	}
	
	public void write(String newLine) {
		try {
			x.write(newLine + "\n");
		} catch (IOException io) {
			System.out.println("Datei konnte nicht erstellt werden(io).");
			io.printStackTrace();
		}
	}public void end(){
		try{
			if (x != null) {
				x.flush();
				x.close();}
		}catch(IOException io){
			io.printStackTrace();}
		}
		
	}
package version1;
import javax.swing.*;
import javax.swing.border.BevelBorder;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GUI   {
	public static void frameSetter(){
		
		
		JFrame frame =new JFrame("NAV.txt.ObjectSplitter");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setSize(450,140);
		frame.setBackground(Color.darkGray);
		frame.setLocationRelativeTo(null);
		frame.setResizable(false);
		frame.setLayout(null);
		Font a=new Font("Arial",Font.BOLD,20);
		//Textfield
		final JTextField entry=new JTextField("C:\\ ");
		entry.setSize(400,30);
		entry.setBackground(Color.white);
		entry.setFont(a);
		//Button
		JButton command=new JButton("NAV-txt.Objekte Splitten");
		command.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
			String path=entry.getText();
			if(!path.contains(".txt")){
				path=path+".txt";
			}
			Reader reader=new Reader();
			reader.read(path);
			
			}
		});
		
		entry.setBounds(10,20,400,30);
		entry.setBorder(new BevelBorder(BevelBorder.RAISED));
		entry.setToolTipText("<html>Hier bitte den genauen Pfad der txt.Datei<br> mit den Objekten angeben!</html>");
		frame.getContentPane().add(entry);
		
		command.setBounds(210, 55, 200, 30);
		command.setBorder(new BevelBorder(BevelBorder.RAISED));
		frame.getContentPane().add(command);
		
		frame.setVisible(true);
		
	}		
}
package version1;
public class ObjectSplitter {
	String oldPath;
	public static void main(String[] args) {
	
	GUI.frameSetter();
	}
} 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		