/***************************************************************/
/* Prof. Dr. Carsten Vogt                                      */
/* FH Koeln, Fak. 07 / Nachrichtentechnik                      */
/* http://www.nt.fh-koeln.de/vogt                              */
/*                                                             */
/* Das Programm zeigt die zeichenorientierte Datei-Ein-/Aus-   */
/* gabe: Werte werden in ihrer extern lesbaren Darstellung     */
/* in die Datei geschrieben.                                   */
/***************************************************************/

import java.io.*;

public class DateiZeichen {

 public static void main(String args[]) throws IOException {

  /* Datei 'testdatei' oeffen bzw. erzeugen und ihren Inhalt loeschen */

  FileWriter fileWrit = new FileWriter("testdatei");
      /* Randbemerkung: Oeffnen zum Anhaengen durch "... new FileWriter("testdatei",true)" */

  /* geoeffnete Datei mit einem PrintWriter-Objekt verketten */

  PrintWriter printWrit = new PrintWriter(fileWrit);

  /* Variablen mit auszugebenden Werten erzeugen */

  byte   byte_zahl = 1;
  short  short_zahl = 22;
  int    int_zahl = 333;
  long   long_zahl = 4444;
  float  float_zahl = 55555.5f;
  double double_zahl = 666666.66;
  char   char_wert = 'a';
  String string_var = new String("TEXT");

  /* Werte in Datei ausgeben */  

  printWrit.println(byte_zahl);
  printWrit.println(short_zahl);
  printWrit.println(int_zahl);
  printWrit.println(long_zahl);
  printWrit.println(float_zahl);
  printWrit.println(double_zahl);
  printWrit.println(char_wert);
  printWrit.println(string_var);

  /* Datei schliessen */

  printWrit.close();  

  /* Variableninhalte loeschen */

  byte_zahl = 0;
  short_zahl = 0;
  int_zahl = 0;
  long_zahl = 0;
  float_zahl = 0;
  double_zahl = 0;
  char_wert = ' ';
  string_var = null;

  /* Datei zur Eingabe oeffnen ... */

  FileReader fileRead = new FileReader("testdatei");

  /* ... und mit BufferReader-Objekt verknuepfen */

  BufferedReader bufRead = new BufferedReader(fileRead);

  /* Werte in Variablen einlesen */

  byte_zahl = Byte.parseByte(bufRead.readLine());  
  short_zahl = Short.parseShort(bufRead.readLine());  
  int_zahl = Integer.parseInt(bufRead.readLine());  
  long_zahl = Long.parseLong(bufRead.readLine());  
  float_zahl = Float.parseFloat(bufRead.readLine());  
  double_zahl = Double.parseDouble(bufRead.readLine());  
  char_wert = (char) bufRead.read();
  bufRead.readLine(); /* wichtig: liest das Returnzeichen aus der Datei,
                                  das hinter dem char-Wert steht */
  string_var = new String(bufRead.readLine());

  /* gelesene Werte ausgeben */

  System.out.println();
  System.out.println("Gelesene byte-Zahl: " + byte_zahl);
  System.out.println("Gelesene short-Zahl: " + short_zahl);
  System.out.println("Gelesene int-Zahl: " + int_zahl);
  System.out.println("Gelesene long-Zahl: " + long_zahl);
  System.out.println("Gelesene float-Zahl: " + float_zahl);
  System.out.println("Gelesene double-Zahl: " + double_zahl);
  System.out.println("Gelesener char-Wert: " + char_wert);
  System.out.println("Gelesener String: " + string_var);

 }

}

