Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

//package com.java2s;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import java.io.OutputStream;

public class Main {
    public static void rename(File oldFile, File newFile) {
        if (newFile.exists() && !newFile.delete()) {
            throw new RuntimeException("can not del dest file: " + newFile);
        }
        if (!oldFile.renameTo(newFile)) {
            try {
                copy(oldFile, newFile);
                if (!oldFile.delete()) {
                    // this is not so bad, but still very strange
                    System.err.println("can not del source file: " + oldFile);
                }
            } catch (Exception ex) {
                throw new RuntimeException("rename failed: from: " + oldFile + " to: " + newFile, ex);
            }
        }
    }

    public static void copy(File src, File dest) throws IOException {

        if (src.isDirectory()) {

            //if directory not exists, create it
            if (!dest.exists()) {
                dest.mkdir();
                System.out.println("Directory copied from " + src + "  to " + dest);
            }

            //list all the directory contents
            String files[] = src.list();

            for (int c = 0; c < files.length; c++) {
                //construct the src and dest file structure
                File srcFile = new File(src, files[c]);
                File destFile = new File(dest, files[c]);
                //recursive copy
                copy(srcFile, destFile);
            }

        } else {
            //if file, then copy it
            //Use bytes stream to support all file types
            InputStream in = new FileInputStream(src);
            OutputStream out = new FileOutputStream(dest);

            byte[] buffer = new byte[1024];

            int length;
            //copy the file content in bytes 
            while ((length = in.read(buffer)) > 0) {
                out.write(buffer, 0, length);
            }

            in.close();
            out.close();
            System.out.println("File copied from " + src + " to " + dest);
        }
    }
}