# Neue Zeile?



## mysticado (29. Feb 2008)

Hallo Leute,
mein Code ist eigentlich schon fast fertig, jedoch habe ich ein Problem beim rausschreiben, da beim Schreiben der Zeile keine newline ( "\n" ) gemacht wird. Unten im Code habe ich diese Stelle markiert. 
Wisst ihr wie ich das umgehen kann und so beim Rausschreiben der Daten in die txt-Datei, nach jeder Zeile eine Newline reinbekomme?
Dankeeee!!!!!

------------------------------------------------------------------------

```
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;


public class Test {
	
	ArrayList<String> zeilen=new ArrayList<String>(); 
	ArrayList<String> zeilenNeu=new ArrayList<String>(); 
	
	public void dateiEinlesen(String datei) throws FileNotFoundException,
			IOException {
		BufferedReader test = new BufferedReader(new FileReader(datei));
		String tmp="";
		while((tmp = test.readLine())!=null){
			if(tmp.contains("192.168.0.2") && tmp.contains("192.168.1.2")){
				zeilen.add(tmp);
			}
		}
	}
	
	public void timeDifference(){
		zeilenNeu.add(zeilen.get(0));
		for(int j=1;j<zeilen.size();j++){
			double f1 = Double.parseDouble(zeilenNeu.get(j-1).substring(0, 17));
			double f2 = Double.parseDouble(zeilen.get(j).substring(0, 17));
			double wert = f2-f1;
			zeilenNeu.add(zeilen.get(j)+", timediff= "+wert);
		}
	}
	
	public void dateiRausschreiben() throws IOException {
		BufferedWriter bAusgabe = new BufferedWriter(new FileWriter("c:/neu.txt"));
		for (int i=0;i<zeilenNeu.size();i++){

                      // Also hier habe ich das "\n" reingeschrieben - beim Rausschreiben wird es aber nicht akzeptiert?
			Ausgabe.write(i+". "+zeilenNeu.get(i)+" \n");
                      // Also hier habe ich das "\n" reingeschrieben - beim Rausschreiben wird es aber nicht akzeptiert?
		}
		bAusgabe.flush();
		bAusgabe.close();
	}
	
	public static void main(String[] args) {
		Test ado = new Test();
		try {
			ado.dateiEinlesen("c:/bla.txt");
			ado.timeDifference();
			ado.dateiRausschreiben();
		} 
		catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
	}
}
```


----------



## P (29. Feb 2008)

Hi!

Benutzt du Vista? Dort habe ich bemerkt, dass \n nicht mehr funktioniert. Um es wieder OS-unabhängig zu machen, versuch folgendes:
System.getProperty("line.separator")
Das in den Output-Stream anstatt \n einfügen.

LG


----------



## Guest (29. Feb 2008)

hi,

also ich geh mal davon aus, dass du Windows verwendest. Unter Windows wäre das escapezeichen für "neue Zeile" "\r\n".  Unter Unix ist es "\n". Um das ganze Plattformunabhängig zu gestalten, solltest du System.getProperty("line.separator") verwenden.

Gruß 
Angelchr


----------



## mysticado (29. Feb 2008)

spitze!
danke für die flotte Hilfe - habe mich für die kürzere Variante entschieden ( \r vor das  \n getippt ) und schon war mein Problem behoben.
Daumen hoch! und topic kann geschlossen werden....


----------



## Jango (1. Mrz 2008)

Ein wenig C/C++ Kenntnisse wären hier von Vorteil: '\n' ist nämlich nur ein Akronym von '\r'.  :wink:


----------



## Wildcard (1. Mrz 2008)

Jango hat gesagt.:
			
		

> Ein wenig C/C++ Kenntnisse wären hier von Vorteil: '\n' ist nämlich nur ein Akronym von '\r'.  :wink:


Nicht im Geringsten, das sind völlig verschiedene Zeichen.


----------



## Jango (1. Mrz 2008)

Wildcard hat gesagt.:
			
		

> Nicht im Geringsten, das sind völlig verschiedene Zeichen.


Ja und nein...
\n bedeutet neue Zeile; \r bedeutet Wagenrücklauf - aber warum funktioniert bei einigen streams das \n nicht - und dafür aber das \r für neue Zeile?
Deshalb der Rückschluss auf C - dort gibts nämlich auch ungepufferte streams, die mit \n nichts anfangen können.


----------



## Leroy42 (1. Mrz 2008)

:shock: 

Was habt ihr beiden denn zu diesen Zeiten (*2:24*, *2:51*, *5:41*)
für Probleme? Da träume ich von ganz anderen Sachen...


----------



## tincup (2. Mrz 2008)

Jango hat gesagt.:
			
		

> Wildcard hat gesagt.:
> 
> 
> 
> ...



Also eigentlich nur ja und nicht nein  :wink: 

Die Zeichen sind völlig unterschiedlich, auch in C.

Die Interpretation durch verschiedene Reader/Ausgabefunktionen etc. ist ein andres paar Schuh.


----------

