Zeilenumbruch funktoniert nur bei Direktaufruf

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

mal wieder habe ich so ein blödes direkt aufrufen Problem. Es geht immer noch um das Programm, mit dem man weitere .jar Files in einer Schlange abarbeiten kann. Nun zu meinem Problem. Eines der "Unterprogramme" (aufgerufene .jar) muss in einer Textdatei die letzte Zeile immer nur tauschen. Diese Textdatei hat 77 Zeilen. Ich lese die komplette Textdatei ein und wenn das Keyword [DATA] (vorletzte Zeile) erreicht wird, hänge ich den entsprechenden String einfach an. Das funktioniert soweit auch bei dem Programm wenn es direkt aufgerufen wird. Doch wenn jetzt diese Programm vom Hauptprogramm aufgerufen wird, schreibt das Unterprogramm eiskalt alles in eine Zeile und ignoriert den Zeilenumbruch. Hier ist der Codeschnipsel:

Code:
String newLine = System.getProperty("line.separator");
for(int k=0; k < compPath.size(); k++){
			tmpIniFile.clear();
			try {
				iniFile = new FileReader(importIniPath);
				BufferedReader iniData = new BufferedReader(iniFile);
				while ((zeile = iniData.readLine()) != null) {
					tmpIniFile.add(zeile + newLine);
					if(zeile.contains("[DATA]")){
						tmpIniFile.add(compPath.get(k));
						break;
					}
				}
				iniData.close();
			} catch (FileNotFoundException e) {
				//System.out.println("Fehler");
			} catch (IOException e) {
				//System.out.println("Fehler");
			}
			try {
				FileWriter iniWriter = new FileWriter(importIniPath);
				for (int l = 0; l < tmpIniFile.size(); l++) {
					iniWriter.append(tmpIniFile.get(l));
				}
				iniWriter.flush();
				iniWriter.close();
			} catch (IOException e) {
				e.printStackTrace();
			} 
}
 
Hi,

in deinem Codeausschnitt schreibst du in der Schleife um Zeile 23 nur die einzelnen Strings (Zeilen), jedoch ohne Zeilenumbruch.

Füge hier noch ein "\n" hinzu, dann sollte das passen.

Grüße,
BK
 
Hi Bratkartoffel,

leider auch keine Besserung. Starte ich das Programm direkt, ist der Zeilenumbruch da. Rufe ich das Programm vom Hauptprogramm mittels "java -jar..." auf sind die Zeilenumbrüche weg. Rufe ich mittels cmd das Programm genauso auf ("java -jar...") dann sind die Zeilenumbrüche aber auch da...komisch oder? :D
 
Hi,

ich seh gerade, du hast den Zeilen "newLine". Hier könnte es sein, dass das Property einmal mit "\n" und einmal mit "\r\n" aufgelöst wird. Schreibe es mal fest als "\r\n" und versuchs nochmal.

Mit welchem Editor überprüfst du die Datei anschließend? Der Windows-Standard Editor kann nur mit \r\n umgehen, versuche es daher mal mit dem Notepad++, der kann mit allen Umbrüchen umgehen.

Grüße,
BK
 
Problem gelöst, war in der falschen Bedingung -.- Habe dort einfach keinen Zeilenumbruch angefügt...wird Zeit für den Feierabend :) Vielen Dank! Habe den Zeilenumbruch so verwendet:

Code:
String newLine = System.getProperty("line.separator");

und entsprechend newLine angehangen.
 
Zurück