Ref :
工具类源码:
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.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;
import java.util.ArrayList;
import java.util.List;
/**
* @usage 工具类:重命名与格式化文件
*/
public class RenameMoveUtils {
public static void main(String[] args) {
// TODO : TEST CODE LIES HERE.
}
private static List<File> fileList = new ArrayList<File>();// 存放符合条件de文件的list集合
private static String extension = "";// 文件扩展名.e.g.:.mp3
/**
* @usage 格式化txt文件的模板
*/
public static void formatTxt(File src, File dest) {
BufferedReader bufRer = GetStreamUtil.getBufferedReader(src);
BufferedWriter bufWer = GetStreamUtil.getBufferedWriter(dest);
String lineStr = null;
try {
while ((lineStr = bufRer.readLine()) != null) {
// TODO : do something.
bufWer.write(lineStr);
bufWer.newLine();
bufWer.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
CloseUtil.close(bufWer);
CloseUtil.close(bufRer);
}
/**
* @usage 提取指定文件夹,所有文件名的模板
* @param srcFolder
* 源文件夹
* @param destTxt
* 将提取出的文件名保存到那个txt文档
*/
public static void extractFilesNames(File srcFolder, File destTxt) {
BufferedWriter bufWer = GetStreamUtil.getBufferedWriter(destTxt);
iterateSrcFolder(srcFolder);
try {
for (File each : fileList) {
// TODO : do something...
bufWer.write(each.getName());
bufWer.newLine();
bufWer.flush();
}
} catch (IOException e) {
e.printStackTrace();
}
CloseUtil.close(bufWer);
}
/**
* @usage 重命名并移动文件到指定的文件夹
* @param srcFolder
* 源文件夹
* @param destFolder
* 目标文件夹
*/
public static void renameAndMoveFiles(File srcFolder, File destFolder) {
iterateSrcFolder(srcFolder);
for (File each : fileList) {
each.renameTo(new File(destFolder, each.getName()));
}
}
/**
* @usage 递归遍历指定的文件夹,将符合条件的文件放到list集合中;
* @param file
* 源
*/
private static void iterateSrcFolder(File file) {
if (!file.exists())
return;
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File each : files) {
iterateSrcFolder(each);
}
} else if (file.getAbsolutePath().endsWith(extension)) {
fileList.add(file);
}
}
}
class GetStreamUtil {
public static BufferedReader getBufferedReader(File file) {
try {
if (!file.isDirectory() && file.exists()) {
return new BufferedReader(new InputStreamReader(new FileInputStream(file)));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
public static BufferedWriter getBufferedWriter(File file) {
try {
if (!file.isDirectory() && file.exists()) {
return new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file)));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
public static InputStream getInputStream(File src) {
try {
if (!src.isDirectory() && src.exists()) {
return new FileInputStream(src);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
public static OutputStream getOutputStream(File dest) {
try {
if (!dest.isDirectory() && dest.exists()) {
return new FileOutputStream(dest);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return null;
}
}// end class-GetStreamUtil
class CloseUtil {
public static void close(InputStream is) {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void close(OutputStream os) {
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void close(Reader reader) {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void close(Writer writer) {
if (writer != null) {
try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}// end class-CloseUtil
示例:
by Mike Sun @ 20170422 Sat