Fájlkezelés



Fajl1.java: sorok bevitele a billentyûzetrõl
 
import java.io.*;

public class Fajl1 {
public static void main(String[] args) throws IOException {
int b;
InputStream in=System.in;
System.out.println("SOROK BEVITELE A BILLENTYUZETROL");
beolvasas:
do {
    b=in.read(); //adatbevitel vége: DOS alatt CTRL Z
    if(b>=32) System.out.println("\t"+(char)b+" = "+b);
    else if(b==13) System.out.println("kocsivissza: "+b);
    else if(b==10) System.out.println("soremeles: "+b);
    else System.out.println("egyeb vezerlo karakter: "+b);
    } while(b!=-1);
System.out.println("ADATBEVITEL VEGE");
}
}

1. variáció (Fajl1V1.java): a billentyûzeten beírt karakterek eltárolása egy változó hosszúságú stringben
 
import java.io.*;

public class Fajl1V1 {
public static void main(String[] args) throws IOException {
int b;
StringBuffer sb=new StringBuffer();
System.out.println("SOROK BEVITELE A BILLENTYUZETROL");
beolvasas:
do {
    b=System.in.read(); //adatbevitel vége: DOS alatt CTRL Z
    if(b>=32) {
     System.out.println("\t"+(char)b+" = "+b);
     sb.append((char)b);
     }
    else if(b==13) System.out.println("kocsivissza: "+b);
    else if(b==10) {
     System.out.println("soremeles: "+b);
     sb.append('\n');
     }
    else System.out.println("egyeb vezerlo karakter: "+b);
    } while(b!=-1);
System.out.println("ADATBEVITEL VEGE");
System.out.println("A BEOLVASOTT SOROK:\n"+sb);
}
}

2. variáció (Fajl1V2.java): a billentyûzeten beírt sorok eltárolása
 
import java.io.*;
import java.util.*;

public class Fajl1V2 {
public static void main(String[] args) throws IOException {
int b;
StringBuffer sb=new StringBuffer();
Vector v=new Vector();
System.out.println("SOROK BEVITELE A BILLENTYUZETROL");
beolvasas:
do {
    b=System.in.read(); //adatbevitel vége: DOS alatt CTRL Z
    if(b>=32) {
     System.out.println("\t"+(char)b+" = "+b);
     sb.append((char)b);
     }
    else if(b==13) System.out.println("kocsivissza: "+b);
    else if(b==10) {
     System.out.println("soremeles: "+b);
     v.addElement(new String(sb));
     sb.setLength(0);
     }
    else System.out.println("egyeb vezerlo karakter: "+b);
    } while(b!=-1);
System.out.println("ADATBEVITEL VEGE");
System.out.println("A BEOLVASOTT SOROK:");
for(Enumeration e=v.elements();e.hasMoreElements(); ) {
 System.out.println((String)e.nextElement());
 }
}
}

3. variáció (Fajl1V3.java): sorok beolvasása stringként
 
import java.io.*;

public class Fajl1V3 {
public static void main(String[] args) throws IOException {
LineNumberReader in=new LineNumberReader(new InputStreamReader(System.in));
String s;
System.out.println("SOROK BEVITELE BILLENTYUZETROL");
System.out.print("? ");
s=in.readLine();
while(s!=null) {
    System.out.println("\t"+in.getLineNumber()+". sor = "+(s.length()>0?s:"(ures sor)"));
    System.out.print("? ");
    s=in.readLine(); //adatbevitel vége: DOS alatt CTRL Z
    }
System.out.println("\n\nADATBEVITEL VEGE");
}
}



Fajl2.java: ASCII karakterek fájlba írása
 
import java.io.*; 

public class Fajl2 { 
public static void main(String[] args) throws IOException { 
 PrintStream out=new PrintStream(new FileOutputStream("ascii.txt"));
 int j; 
 StringBuffer s=new StringBuffer(8); 

 System.out.println("Az ASCII karakterek fajlba es kepernyore irasa");

 for(j=32;j<=127;j++) { 
  s.setLength(0);
  s.append(j).append(": ").append((char)j); 
  while(s.length()<8) {
   s.insert(0," ");
   } 
  System.out.print(s.toString());
  out.print(s.toString());
  }
 out.close();
 } 
}

1. variáció: (Fajl2V1.java): a billentyûzetrõl bevitt sorok fájlba írása
 
import java.io.*; 

public class Fajl2V1 { 
public static void main(String[] args) throws IOException { 
LineNumberReader in=new LineNumberReader(new InputStreamReader(System.in));
PrintStream out=new PrintStream(new FileOutputStream("szoveg.txt"));
String s;
System.out.println("SOROK BEVITELE BILLENTYUZETROL");
System.out.print("? ");
s=in.readLine();
while(s!=null) {
    out.println(s);
    System.out.print("? ");
    s=in.readLine(); //adatbevitel vége: DOS alatt CTRL Z
    }
System.out.println("\n\nADATBEVITEL VEGE");
out.close(); 
}
}

2. variáció: (Fajl2V2.java): a billentyûzetrõl bevitt sorok hozzáírása egy létezõ fájl tartalmához
 
import java.io.*; 

public class Fajl2V2 { 
public static void main(String[] args) throws IOException { 
LineNumberReader in=new LineNumberReader(new InputStreamReader(System.in));
PrintStream out=new PrintStream(new FileOutputStream("szoveg.txt",true));
String s;
System.out.println("SOROK BEVITELE BILLENTYUZETROL");
System.out.print("? ");
s=in.readLine();
while(s!=null) {
    out.println(s);
    System.out.print("? ");
    s=in.readLine(); //adatbevitel vége: DOS alatt CTRL Z
    }
System.out.println("\n\nADATBEVITEL VEGE");
out.close(); 
}
}



Fajl3.java: szövegfájl tartalmának kiolvasása
 
import java.io.*; 

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

FileInputStream f=new FileInputStream("szoveg.txt");
LineNumberReader in=new LineNumberReader(new InputStreamReader(f));
String s; 
s=in.readLine(); 
while(s!=null) { 
 System.out.println("\t"+in.getLineNumber()+". sor = "+(s.length()>0?s:"(ures sor)"));
 s=in.readLine(); 
 }
in.close(); 

}

1. variáció: (Fajl3V1.java): parancssori paraméterként megadott fájl tartalmának kiolvasása kivételkezeléssel
 
import java.io.*; 

public class Fajl3V1 { 
public static void main(String[] args) throws IOException { 
FileInputStream f=null;
try { 
    f=new FileInputStream(args[0]); 
    } 
catch(FileNotFoundException e) {
    System.out.println("file \""+args[0]+"\" not found"); 
    System.exit(1); 
    }
catch(Exception e) {
    System.out.println("command line parameter missing"); 
    System.exit(2); 
    }
LineNumberReader in=new LineNumberReader(new InputStreamReader(f));
String s; 
s=in.readLine(); 
while(s!=null) { 
 System.out.println(s);
 s=in.readLine(); 
 }
in.close(); 

}

2. variáció: (Fajl3V2.java): parancssori paraméterként megadott fájl tartalmának kiolvasása, ha a fájl létezik
 
import java.io.*; 

public class Fajl3V2 { 
public static void main(String[] args) throws IOException { 
if(args.length==0) {
 System.out.println("command line parameter missing"); 
 System.exit(1); 
 }
File file=new File(args[0]);
if(!file.exists()) {
 System.out.println("file \""+args[0]+"\" not found"); 
 System.exit(2); 
 }
FileInputStream f=new FileInputStream(file);
LineNumberReader in=new LineNumberReader(new InputStreamReader(f));
String s; 
s=in.readLine(); 
while(s!=null) { 
 System.out.println(s);
 s=in.readLine(); 
 }
in.close(); 

}


Boda István, 2005 szeptember 10.