fileutil.java
来自「Struts2 + Spring JPA Hibernate demo.」· Java 代码 · 共 1,321 行 · 第 1/3 页
JAVA
1,321 行
package com.vegeta.utils.file;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStreamWriter;
import com.vegeta.utils.Util;
/**
* File utilities.
*
* <p>
* <a href="FileUtil.java.html"><i>View Source</i></a>
* </p>
*
* @version $Revision: 30 $ $Date: 2006-06-08 21:26:40 +0800 (星期四, 08 六月 2006) $
*/
public final class FileUtil {
// ---------------------------------------------------------------- misc
// utils
/**
* Returns current working folder string.
*
* @return current woking folder
*/
public static String getWorkingDir() {
return System.getProperty("user.dir");
}
/**
* Returns current working folder.
*
* @return File for current woking folder
*/
public static File getWorkingDirFile() {
return new File(System.getProperty("user.dir"));
}
/**
* Returns file size.
*
* @param fileName
* file name
*
* @return file size
*/
public static long getFileSize(String fileName) {
return new File(fileName).length();
}
/**
* Returns file size.
*
* @param file
* file
*
* @return file size
*/
public static long getFileSize(File file) {
return file.length();
}
/**
* Checks if two files are poiniting to the same file.
*
* @param file1
* first file
* @param file2
* second file
*
* @return true if files are pointing to the same file
*/
public static boolean equals(String file1, String file2) {
return equals(new File(file1), new File(file2));
}
/**
* Checks if two files are poiniting to the same file.
*
* @param file1
* first file
* @param file2
* second file
*
* @return true if files are pointing to the same file
*/
public static boolean equals(File file1, File file2) {
try {
file1 = file1.getCanonicalFile();
file2 = file2.getCanonicalFile();
} catch (IOException e) {
return false;
}
return file1.equals(file2);
}
/**
* Creates all folders.
*
* @param dirs
* dirs
*
* @return true if creating was successful, false otherwise
*/
public static boolean mkdirs(String dirs) {
return new File(dirs).mkdirs();
}
/**
* Creates all folders.
*
* @param dirs
* dirs
*
* @return true if creating was successful, false otherwise
*/
public static boolean mkdirs(File dirs) {
return dirs.mkdirs();
}
/**
* Creates a folder.
*
* @param dir
* dir
*
* @return true if creating was successful, false otherwise
*/
public static boolean mkdir(String dir) {
return new File(dir).mkdir();
}
/**
* Creates a folders.
*
* @param dir
* dir
*
* @return true if creating was successful, false otherwise
*/
public static boolean mkdir(File dir) {
return dir.mkdir();
}
// ---------------------------------------------------------------- file
// copy vairants
/**
* Buffer size (32KB) for file manipulation methods.
*/
public static int FILE_BUFFER_SIZE = 32 * 1024;
/**
* Copies and overwrites a file to another file or folder.
*
* @param fileIn
* input file
* @param fileOut
* output file
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copy(String fileIn, String fileOut) {
return copy(new File(fileIn), new File(fileOut), FILE_BUFFER_SIZE, true);
}
/**
* Copies a file to another file or folder.
*
* @param fileIn
* input file
* @param fileOut
* output file
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copySafe(String fileIn, String fileOut) {
return copy(new File(fileIn), new File(fileOut), FILE_BUFFER_SIZE,
false);
}
/**
* Copies and overwrites a file to another file or folder with specified
* buffer size.
*
* @param fileIn
* input file
* @param fileOut
* output file
* @param bufsize
* size of the buffer used for copying
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copy(String fileIn, String fileOut, int bufsize) {
return copy(new File(fileIn), new File(fileOut), bufsize, true);
}
/**
* Copies a file to another file or folder with specified buffer size.
*
* @param fileIn
* input file
* @param fileOut
* output file
* @param bufsize
* size of the buffer used for copying
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copySafe(String fileIn, String fileOut, int bufsize) {
return copy(new File(fileIn), new File(fileOut), bufsize, false);
}
/**
* Copies and overwrites a file to another file or folder.
*
* @param fileIn
* input file
* @param fileOut
* output file
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copy(File fileIn, File fileOut) {
return copy(fileIn, fileOut, FILE_BUFFER_SIZE, true);
}
/**
* Copies a file to another file or folder.
*
* @param fileIn
* input file
* @param fileOut
* output file
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copySafe(File fileIn, File fileOut) {
return copy(fileIn, fileOut, FILE_BUFFER_SIZE, false);
}
/**
* Copies and overwrites a file to another file or folder with specified
* buffer size.
*
* @param fileIn
* input file
* @param fileOut
* output file
* @param bufsize
* size of the buffer used for copying
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copy(File fileIn, File fileOut, int bufsize) {
return copy(fileIn, fileOut, bufsize, true);
}
/**
* Copies a file to another file or folder with specified buffer size.
*
* @param fileIn
* input file
* @param fileOut
* output file
* @param bufsize
* size of the buffer used for copying
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copySafe(File fileIn, File fileOut, int bufsize) {
return copy(fileIn, fileOut, bufsize, false);
}
// ---------------------------------------------------------------- file
// copy
/**
* Copies a file to another file or folder with specified buffer size and
* overwrite flag.
*
* @param fileIn
* input file
* @param fileOut
* output file
* @param bufsize
* size of the buffer used for copying
* @param overwrite
* should existing destination be overwritten
*
* @return true if operation was successful, false otherwise
* @see #copy(File, File, int, boolean)
*/
public static boolean copy(String fileIn, String fileOut, int bufsize,
boolean overwrite) {
return copy(new File(fileIn), new File(fileOut), bufsize, overwrite);
}
/**
* Copies a file to another file or folder with specified buffer size and
* overwrite flag. If source doesn't exist, operation fails. If source isn't
* file, operation fails. Destination may be a folder, in that case file
* will be copied in destination folder. If overwrite is on and source file
* points to the same file as edstination, operation is successful.
*
* @param fileIn
* input file
* @param fileOut
* output file
* @param bufsize
* size of the buffer used for copying
* @param overwrite
* should existing destination be overwritten
*
* @return true if operation was successful, false otherwise
*/
public static boolean copy(File fileIn, File fileOut, int bufsize,
boolean overwrite) /* throws IOException */{
// check if source exists
if (fileIn.exists() == false) {
return false;
}
// check if source is a file
if (fileIn.isFile() == false) {
return false;
}
// if destination is folder, make it to be a file.
if (fileOut.isDirectory() == true) {
fileOut = new File(fileOut.getPath() + File.separator
+ fileIn.getName());
}
if (overwrite == false) {
if (fileOut.exists() == true) {
return false;
}
} else {
if (fileOut.exists()) { // if overwriting, check if destination is
// the same file as source
try {
if (fileIn.getCanonicalFile().equals(
fileOut.getCanonicalFile()) == true) {
return true;
}
} catch (IOException ioex) {
return false;
}
}
}
return copyFile(fileIn, fileOut, bufsize);
}
// ---------------------------------------------------------------- copy
// file
/**
* Copies one file to another withut any checkings.
*
* @param fileIn
* source
* @param fileOut
* destination
*
* @return true if operation was successful, false otherwise
*/
public static boolean copyFile(String fileIn, String fileOut) {
return copyFile(new File(fileIn), new File(fileOut), FILE_BUFFER_SIZE);
}
/**
* Copies one file to another withut any checkings.
*
* @param fileIn
* source
* @param fileOut
* destination
*
* @return true if operation was successful, false otherwise
*/
public static boolean copyFile(File fileIn, File fileOut) {
return copyFile(fileIn, fileOut, FILE_BUFFER_SIZE);
}
/**
* Copies one file to another withut any checkings.
*
* @param fileIn
* source
* @param fileOut
* destination
* @param bufsize
* buffer size
*
* @return true if operation was successful, false otherwise
*/
public static boolean copyFile(String fileIn, String fileOut, int bufsize) {
return copyFile(new File(fileIn), new File(fileOut), bufsize);
}
/**
* Copies one file to another withut any checkings.
*
* @param fileIn
* source
* @param fileOut
* destination
* @param bufsize
* buffer size
*
* @return true if operation was successful, false otherwise
*/
public static boolean copyFile(File fileIn, File fileOut, int bufsize) {
FileInputStream in = null;
FileOutputStream out = null;
boolean result = false;
try {
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?