org.dyndns.hentschel.openArena.application
Class RassenInfo.MyFileStream

java.lang.Object
  |
  +--java.io.OutputStream
        |
        +--org.dyndns.hentschel.openArena.application.RassenInfo.MyFileStream
Enclosing class:
RassenInfo

protected static class RassenInfo.MyFileStream
extends java.io.OutputStream

MyStream stellt einen FileStream dar, die Datei wird jedoch erst angelegt wenn auch etwas in den Stream geschrieben wurde. Des weitere legt MyStream für jede angelegte Datei einen Systemhook an. Dieser Hook wird beim schließen der Datei entfernt.


Field Summary
private static int BUFFER_SIZE
          Die Standart INODE Dichte auf den meisten OS'es
private  RassenInfo.CloseThread closeThread
          Der Systemhook
private  java.lang.String file
          Der Dateiname
private  java.io.OutputStream fout
          Der zugrunde liegende Stream
private  boolean log
          Funktioniert das Anlegen der Datei nicht.
 
Constructor Summary
RassenInfo.MyFileStream(java.lang.String file)
          Legt einen neuen MyFileStream an.
 
Method Summary
 void close()
          Die Datei wird geschlossen und der Systemhook entfernt
 void flush()
           
 void write(int b)
          Versucht die Datei anzulegen(falls das noch nicht erfolgt oder fehlgeschlagen ist) und schreibt bei Erfolg die übergebene Information in die Datei.
 
Methods inherited from class java.io.OutputStream
write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BUFFER_SIZE

private static final int BUFFER_SIZE
Die Standart INODE Dichte auf den meisten OS'es

See Also:
Constant Field Values

fout

private java.io.OutputStream fout
Der zugrunde liegende Stream


closeThread

private RassenInfo.CloseThread closeThread
Der Systemhook


file

private java.lang.String file
Der Dateiname


log

private boolean log
Funktioniert das Anlegen der Datei nicht. Weil z.B. das Zielverzeichnis nicht existiert, der Benutzer keiner Berechtigungen hat, etc. so wird hier festgehalten, das für diesen Agenten keine Log-geschrieben wird.

Constructor Detail

RassenInfo.MyFileStream

public RassenInfo.MyFileStream(java.lang.String file)
Legt einen neuen MyFileStream an.

Parameters:
file - Der Name der Datei die eventuell angelegt wird.
Method Detail

write

public void write(int b)
           throws java.io.IOException
Versucht die Datei anzulegen(falls das noch nicht erfolgt oder fehlgeschlagen ist) und schreibt bei Erfolg die übergebene Information in die Datei. Fall eine neue Datei erzuegt wurde, so wird ein Systemhook registriert, der das schreiben der Datei sicherstellt.

Specified by:
write in class java.io.OutputStream
Throws:
java.io.IOException
See Also:
FileOutputStream.write

flush

public void flush()
           throws java.io.IOException
Overrides:
flush in class java.io.OutputStream
Throws:
java.io.IOException
See Also:
FileOutputStream.flush

close

public void close()
           throws java.io.IOException
Die Datei wird geschlossen und der Systemhook entfernt

Overrides:
close in class java.io.OutputStream
Throws:
java.io.IOException
See Also:
FileOutputStream.close