FileOperator Class
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* FileOperateHelper<br>
* 文件操作类.
*
* @author HitSnail
* @version 2009-03-28
*/
public class FileOperator {
/**
* 创建文件夹<br>
* 若上级文件夹不存在则一并创建之.<br>
*
* <pre><code>
* pathName
* </code>
* 中涉及的文件路径分割符使用
* <code>
* File.separator
* </code></pre>
*
* @param pathName
* 指定的文件夹路径.
*/
public static void newFolder(String pathName) {
try {
File fileFolder = new File(pathName);
if (!fileFolder.exists())
fileFolder.mkdirs();
} catch (Exception e) {
System.out.println("*****Problem Creating new Folder*****"
+ pathName + "*****");
e.printStackTrace();
}
}
/**
* 在已经尊在的文件夹中创建指定名称的文件<br>
*
* <pre><code>
* pathName
* </code>
* 中涉及的文件路径分割符使用
* <code>
* File.separator
* </code></pre>
*
* @param pathToName
* 文件夹路径及名称.
* @param name
* 需要被创建的文件名称.
*/
public static void newFile(String pathToName, String name) {
try {
File file = new File(pathToName + File.separator + name);
if (file.exists()) {
file.delete();
} else {
file.createNewFile();
}
} catch (Exception e) {
System.out.println("*****Problem Creating new File*****"
+ pathToName + File.separator + name + "*****");
e.printStackTrace();
}
}
/**
* 创建指定文件夹及其下指定名称的文件<br>
*
* <pre><code>
* pathName
* </code>
* 中涉及的文件路径分割符使用
* <code>
* File.separator
* </code></pre>
*
* 若上级文件夹不存在则一并创建之.
*
* @param pathToName
* 需要被创建的文件夹路径及名称.
* @param name
* 需要被创建的文件名称.
*/
public static void newFolderAndFile(String pathToName, String name) {
try {
newFolder(pathToName);
newFile(pathToName, name);
} catch (Exception e) {
System.out.println("*****Problem Creating new FolderAndFile*****"
+ pathToName + File.separator + name + "*****");
e.printStackTrace();
}
}
/**
* 将二进制流写入指定目录及名称的文件<br>
* 调用该方法之前 目标文件必须已经存在(即使没有内容).
*
* <pre><code>
* pathName
* </code>
* 中涉及的文件路径分割符使用
* <code>
* File.separator
* </code></pre>
*
* @param input
* 输入流.
* @param filePathAndName
* 指定的文件路径及名称.
*/
public static void outBinaryFile(FileInputStream input,
String filePathAndName) {
try {
FileOutputStream outFile = new FileOutputStream(filePathAndName);
byte[] bytes = new byte[1024];
int n;
try {
while ((n = input.read(bytes, 0, 1024)) != -1)
outFile.write(bytes, 0, n);
outFile.close();
outFile = null;
bytes = null;
} catch (IOException e) {
System.out
.println("*****Problem BinaryDataOut,Bytes Array*****");
e.printStackTrace();
}
} catch (FileNotFoundException e) {
System.out.println("*****Problem BinaryDataOut,File "
+ filePathAndName + "Not Found*****");
e.printStackTrace();
}
try {
input.close();
} catch (IOException e) {
System.out.println("*****Problem Close input*****");
e.printStackTrace();
}
}
}
FileTest Class
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class FileTest {
public static void main(String[] args) {
// System.out.println(File.pathSeparator);// ;
// System.out.println(File.pathSeparatorChar);// ;
// System.out.println(File.separator);// \
// System.out.println(File.separatorChar);// \
//文件夹及其路径名称
String pathName = "d:"
+ File.separator
+ "文件夹"
+ File.separator
+ "子文件夹4";
// System.out.println(pathName);// d:\文件夹\子文件夹4
// FileOperator.newFolder(pathName);
// FileOperator.newFile(pathName,"lp.doc");
// FileOperator.newFile("D:" + File.separator + "oop","lp");
//创建文件夹及文件
FileOperator.newFolderAndFile(pathName, "10.doc");
//源文件
String outName = "F:"
+ File.separator
+ "Onlearning"
+ File.separator
+ "book"
+ File.separator
+ "doc"
+ File.separator
+ "some words.doc";
//目标文件
String des = pathName
+ File.separator
+ "10.doc";
try {
FileInputStream indata = new FileInputStream(outName);
FileOperator.outBinaryFile(indata, des);
} catch (FileNotFoundException e) {
System.out.println("*****************error*******************");
e.printStackTrace();
}
}
}