import java.io.*;
import java.util.Date;

/**
 * Get information about an existing file
 *
 */

public class IOinfo1
{
    public static void main(String[] args)
    {
        String source_file = "../data/temp.txt";                        //relative path 

//      String source_file = "/home/sultans/web/java/demo/8inpout/data/temp.txt"; 

        if (args.length > 0) source_file = args[0];                     //if arg0, take it instead

        File f1 = new File(source_file);                                //get a file handle

        System.out.println("File name:      " + f1.getName() );
        System.out.println("Relative path:  " + f1.getPath() );
        System.out.println("Absolute path:  " + f1.getAbsolutePath() );
        System.out.println("File parent:    " + f1.getParent() );
        System.out.println("File exists:    " + (f1.exists()       ? "Yes" : "No"));
        System.out.println("is Absolute:    " + (f1.isAbsolute()   ? "Yes" : "No"));
        System.out.println("is normal file: " + (f1.isFile()       ? "Yes" : "maybe pipe"));
        System.out.println("is Directory:   " + (f1.isDirectory()  ? "Yes" : "No"));
        System.out.println("File readable:  " + (f1.canRead()      ? "Yes" : "No"));
        System.out.println("File writeable: " + (f1.canWrite()     ? "Yes" : "No"));

        long numOfMilSec = f1.lastModified();
        Date date        = new Date(numOfMilSec);

        System.out.println("Modified date:  " + numOfMilSec);
        System.out.println("                " + date);
        
        System.out.println("File size:      " + f1.length() + " bytes");
        System.out.println();
    }
}