RandomAccessFile komisch zeichen

Status
Nicht offen für weitere Antworten.

Oni

Top Contributor
ich nutz randomaccessfile um einen logfile zu erstellen, das klappt auch wunderbar. aberirgendwie packt er mir immer slash's(mit pfeil makiert) rein. woran liegt das ?

ich schreibe mit "rw" und mache die zeilenumbrüche mit "\r\n"

Code:
 / <---------

################ 28.5.2005 ################ / <----
20:53:22 101x555x8  Wartezeit: 7000 / <---
20:53:29 101x555x8  Wartezeit: 3000 / <---
20:53:32 101x555x8  Wartezeit: 3000 / <---

################ 28.5.2005 ################ /
20:54:05 101x555x8  Wartezeit: 7000 /
20:54:12 101x555x8  Wartezeit: 4000 /
20:54:16 101x555x8  Wartezeit: 6000
 
Mach die Zeilenumbrüche mit diesem Zeichen
Code:
System.getProperty("line.separator");
anstatt "\r\n".
 
das hat leider nichts an der ausgabe geändert. hat einer vielleicht noch eine idee woran das liegt?
 
ich glaube das ist alles was relevant ist

Code:
 RandomAccessFile output = null; 

public void naechste()
     {
         	String ueberschrift = datumBerechnen();

          try
          {
          	output = new RandomAccessFile( "FlottenLog.txt", "rw" );
               long filelaenge = output.length();
               if(filelaenge > 15000)
               {
                    output.setLength(0);
                    output.writeUTF( ueberschrift );
               }
               else
               {
	               output.seek( output.length() );
	               output.writeUTF( ueberschrift );
               }
               output.close();
          }
          catch ( IOException e )
          {
               System.err.println( "e" );
          }

          java.util.Timer time = new java.util.Timer();
     	TimerTask task = new TimerTask()
	     	{
	     		public void run()
	               {
                    	// Wartezeit berechnen
                         int wartezeitEingabe = ((Number)warten.getValue()).intValue();
          			wartezeit = Wartezeit.wartezeitBerechnen(wartezeitEingabe);
          			System.out.println(wartezeit);

                         //String zusammen bauen
                    	int zahl = (v.size()-1);
                         String test = (String)v.elementAt(zahl);

                         String outString = test.trim();

                         String zeit = zeitBerechnen();
                         outString = zeit + " " + outString + "  Wartezeit: " + wartezeit;

                         try
   	           		{
	                    	output = new RandomAccessFile( "FlottenLog.txt", "rw" );
	                    	output.seek( output.length() );
	                         output.writeUTF( outString );
                              output.close();
	                    }
	                    catch ( IOException e )
                         {
	                    	System.err.println( e );
	                    }

                        	String result[] = test.split("x");
	                    zielGala = "&ft1=";
	                    zielSys = "&ft2=";
	                    zielPlani = "&ft3=";
	                    flotten = "";

	                    zielGala += result[0];
	                    zielSys += result[1];
	                    zielPlani += result[2];
	                    for(int j=3; j<result.length; j++)
	                    {
	                         flotten += "&c";
	                         flotten += result[j];
	                    }
	                    String zielUndFleet = zielGala + zielSys + zielPlani + flotten;

	                    speedWert = speedBerechnung();

               	     gesamtString = urlString + id + pluenderReinfolge + speed + speedWert + zielUndFleet + abschicken;
	                    System.out.println(gesamtString);
	                    sendeDaten(gesamtString);
	                    v.remove(zahl);
	                    list.setListData(v);
	                    if(v.size() == 0)
	                    {
                         	status.setText("gestartete Angriffe: "+ countFlug);
	                    	this.cancel();
	                    }
                         Thread t = new Thread();
                         try
                         {
                         	t.sleep(wartezeit);
                         }
                         catch(InterruptedException e)
                         {
                         }
                    }
	          };
          time.schedule(task,50,1000);
     }
	public String datumBerechnen()
     {
     	cal = new GregorianCalendar();
          cal.setTimeZone( TimeZone.getTimeZone("ECT") );
          cal.setTime( cal.getTime() );

          String datum = cal.get(Calendar.DATE) + "." +
                 	    (cal.get(Calendar.MONTH)+1) + "." +
                        	cal.get(Calendar.YEAR);

     	String ueberschrift = "\r\n" + "\r\n" + "################ ";
          ueberschrift = ueberschrift + datum + " ################";
     	return ueberschrift;
     }

     public String zeitBerechnen()
     {
     	cal = new GregorianCalendar();
          cal.setTimeZone( TimeZone.getTimeZone("ECT") );
     	cal.setTime( cal.getTime() );

          String zeit = "\r\n" + cal.get(Calendar.HOUR_OF_DAY) + ":" +
                 	outZeit(cal.get(Calendar.MINUTE)) + ":" +
          		outZeit(cal.get(Calendar.SECOND));
     	return zeit;
     }
 
Ich hatte zuerst auch komische Zeichen bekommen. Nachdem ich writeUTF durch writeBytes ersetzt habe ging es ohne Probleme
 
super es klappt.
was ist an writeUTF falsch?

und was meinst du sonst zu dem code? ich hätte gerne mal ein paar kritsche worte, was nicht so gut ist an dem, was ich da mache vom style her.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben