/***************************************************************/ /* Prof. Dr. Gregor Büchel */ /* Source: Dat1.java */ /* Stand : 29.03.2002 */ /* */ /* Testprogramm für einfache zeichenorientierte Dateiverar- */ /* beitung. Dieser Quelltext ist n i c h t kommentiert! Be- */ /* achten Sie bitte die Kommentare dazu in der Vorlesung! */ /* */ /***************************************************************/ import java.io.*; class Dat1 { public static void main(String args[]) throws IOException {int a=17, l1, k, m, iz=0, ir, nrz=-9999, nzz=-9999; String s1; s1= new String(); char ezf[], za='X'; ezf= new char[2]; /* 2 stellige Zahlen werden gelesen */ do {m=menue(); switch(m) {case 1: FileWriter pta = new FileWriter("ax1.txt"); PrintWriter pd1 = new PrintWriter(pta); for (k=a; k<49; k=k+4) {pd1.println(k); iz=iz+1; } System.out.println(iz+" Datensätze geschrieben"); pd1.close(); break; case 2: FileReader pte = new FileReader("ax1.txt"); BufferedReader pd2 = new BufferedReader(pte); iz=0; s1=pd2.readLine(); while(s1!=null) {iz=iz+1; k=Integer.parseInt(s1); System.out.println(iz+".Datensatz: "+k); s1=pd2.readLine(); } pd2.close(); System.out.println("EOF: "+iz+" Datensätze gelesen"); break; case 3: FileReader pte2 = new FileReader("ax1.txt"); BufferedReader pd3 = new BufferedReader(pte2); iz=0; /* Lesen 2-stellige Zahl */ ir=pd3.read(ezf,0,2); while(ir!=-1) {iz=iz+1; s1=new String(ezf); k=Integer.parseInt(s1); System.out.println(iz+".DS (String:int): "+s1+" : "+k); /* Überlesen: Stringende- und CR-Zeichen, denn */ /* die Eingabedatei wurde mit println() erzeugt ! */ ir=pd3.read(ezf,0,2); /* Lesen 2-stellige Zahl */ ir=pd3.read(ezf,0,2); } pd3.close(); System.out.println("EOF: "+iz+" Datensätze gelesen"); break; case 4: FileReader pte3 = new FileReader("ax1.txt"); BufferedReader pd4 = new BufferedReader(pte3); iz=0; /* Lesen von einem Zeichen */ ir=pd4.read(ezf,0,1); while(ir!=-1) {iz=iz+1; System.out.print(ezf[0]); if (ezf[0]=='\n') {nzz=(int)ezf[0]; System.out.println("->CR-Zeichen(Nr."+nzz+") bei Pos. : "+iz); System.out.println(" Vorgängerzeichen-Nr.: "+nrz); } za=ezf[0]; nrz=(int)za; ir=pd4.read(ezf,0,1); } pd4.close(); System.out.println("EOF: "+iz+" Zeichen gelesen"); break; case 9: System.out.println("ENDE!"); break; default: System.out.println("Unzulaessige Eingabe!"); } } while(m!=9); } public static int menue() {int ir; System.out.println("Dateiverarbeitung:"); System.out.println("(1) Erzeugen einer Textdatei (int-Zahlen)"); System.out.println("(2) Lesen einer Textdatei (stringorientiert)"); System.out.println("(3) Lesen einer Textdatei (zeichenorientiert)"); System.out.println("(4) Lesen einer Textdatei (Zeichenarray)"); System.out.println("(9) ENDE"); System.out.println("Bitte wählen Sie!"); ir=IO1.einint(); return ir; } }