Back Up Next

Delo z datotekami - File in RandomAccesFile

File

 
File je razred, s katerim lahko dobimo informacije o datoteki (velikost, pot,...), omogoča pa tudi ustvarjanje direktorijev, preimenovanje in brisanje datotek ter izpis vsebine nekega direktorija.
import java.io.*;
class test {
    public static void main (String argv[ ]) { 

        File inp;
        BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
        String name;
        int i;
        try { 
            System.out.print("Vnesi ime datoteke: ");
            name=in.readLine();

            inp=new File(name); // Ustvarimo objekt file

            if (inp.isDirectory()) {  // je direktorij?
                File[ ] files=inp.listFiles();  // spisek datotek v direktoriju

                for (i=0;i<files.length;i++) { 
                    System.out.println("File name : " + files[i].getName()); // ime datoteke
                    System.out.println("File path : " + files[i].getPath()); // relativna pot
                    System.out.println("Absolute path: " + files[i].getAbsolutePath()); // absolutna pot
                    System.out.println("File length : " + files[i].length() + " bytes"); // dolzina
                }
            }
            else if (inp.exists()) { // obstaja?
                System.out.println("File path : " + inp.getPath());
                System.out.println("Absolute path: " + inp.getAbsolutePath());
                System.out.println("File length : " + inp.length() + " bytes");
            }
            else 
                inp.mkdirs(); // naredimo direktorij
        }
        catch (Exception e) {
            System.err.println("Exception : " + e.getMessage());
        }
    } 
}

RandomAccessFile

 
RandomAccessFilenam olajša delo z pisanjem in branjem datotek.
Vsebuje metode iz FileInputStream, FileOutputStream, DataInputStream in DataOutputStream.
Ima še nekaj dodatnih metod, kot npr. length, ki vrne dolžino datoteke, getfilePointer, ki pove kje se v datoteki nahajamo, in seek za primikanje po datoteki.
import java.io.*;
    class test {
        public static void main (String argv[ ]) { 
        RandomAccessFile file;
        int i;
        try { 
            file=new RandomAccessFile("lalala","rw"); // odpremo za branje in pisanje
            for (i=0;i<100;i++)
                file.writeInt(i);  // pišemo cela stevila

            file.seek(12);  // postavimo se na 12. bajt
            while (file.getFilePointer()<file.length()) // do konca datoteke 
                System.out.println(file.readInt()); // beremo cela stevila

            file.close(); // zapremo datoteko
        }
        catch (Exception e) {
            System.err.println("Exception : " + e.getMessage());
        }
    } 
}
Back Up Next