自学JAVA两三个月还是来培训班了!有个学习的氛围,感觉效率还是挺好的!
【功能实现:】算这是自己学习成长和巩固的记录吧!
package day10;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
/**
* 文件拷贝的相关方法(实现:IO流+递归)
* 1.文本文件拷贝<".txt"; ".java"等无格式化文本文件>:copyBookFile()
* 2.任意文件的拷贝<".*"格式文本文件>:copyAllFile()
* 3.文件夹的某文本文件复制拷贝功能:copyBookFiles(File srcDir, String type, File destDir)
* 4.文件夹的任复制拷贝功能:copyAllFiles(File srcDir, String type, File destDir)
* 5.遍历文件夹下指定格式的所有文件:takeTypeFiles(File file, String type)
* 6.遍历文件夹下所有文件:takeAllFiles(File srcDir)
* 7.遍历指定文件夹:getAllFiles(File src)
* 8.文件夹的拷贝<文件夹下可包含文件>:copyFiles()
* @author lenovo
*
*/
public class CopyFilesUtil {
/**
* 功能:将内容从一个文件拷贝到另一份文件中(文本文件的拷贝功能)
* (应用内容:IO流)
* @param srcDir 源文件路径地址
* @param destDir 目标文件路径地址
* @throws IOException 异常声明
*/
@SuppressWarnings("unused")
public static void copyBookFile(File srcDir, File destDir) throws IOException {
FileReader fr = null;
FileWriter fw = null;
try {
fr = new FileReader(srcDir);
fw = new FileWriter(destDir);
int temp = 0;
char[] bt = new char[20];
while ((temp = fr.read(bt)) != -1) {
fw.write(bt);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
fw.flush();
fr.close();
fw.close();
}
}
/**
* 功能:将内容从一个文件拷贝到另一份文件中(任意文件的拷贝功能)
* (应用内容:IO流)
* @param srcDir 源文件路径地址
* @param destDir 目标文件路径地址
* @throws IOException 异常声明
*/
@SuppressWarnings("unused")
public static void copyAllFile(File srcDir, File destDir) throws IOException {
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(srcDir);
fos = new FileOutputStream(destDir);
int temp = 0;
byte[] bt = new byte[20];
while ((temp = fis.read(bt)) != -1) {
fos.write(bt);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
fos.flush();
fis.close();
fos.close();
}
}
/**
* 功能:将一个路径目录下某格式的所有文本文件拷贝到另一份路径目录下(文件夹的某文本文件复制拷贝功能)。
* (应用内容:IO流、递归思想)
* @param srcDir 源文件夹路径地址
* @param type 文本文件格式类型
* @param destDir 目标文件夹路径地址
* @throws IOException 异常声明
*/
@SuppressWarnings("unused")
public static void copyBookFiles(File srcDir, String type, File destDir) throws IOException {
File[] files = srcDir.listFiles();
for (File file : files) {
if (file.isFile() && file.getName().toLowerCase().endsWith(type)) {
// 调用文件拷贝程序执行拷贝功能
CopyFilesUtil.copyBookFile(file, new File(destDir + "\\" + file.getName()));
} else if (file.isDirectory()) {
File[] fileNext = file.listFiles();
copyBookFiles(file, type, destDir);
}
}
}
/**
* 功能:将一个路径目录下某格式的所有文本文件拷贝到另一份路径目录下(文件夹的任意文件复制拷贝功能)。
* (应用内容:IO流、递归思想)
* @param srcDir 源文件夹路径地址
* @param type 文本文件格式类型
* @param destDir 目标文件夹路径地址
* @throws IOException 异常声明
*/
@SuppressWarnings("unused")
public static void copyAllFiles(File srcDir, String type, File destDir) throws IOException {
// 首先遍历srcDir目录转换file对象为数组
File[] files = srcDir.listFiles();
for (File file : files) {
if (file.isFile() && file.getName().toLowerCase().endsWith(type)) {
// 调用文件拷贝程序执行拷贝功能
CopyFilesUtil.copyAllFile(file, new File(destDir + "\\" + file.getName()));
} else if (file.isDirectory()) {
File[] fileNext = file.listFiles();
copyAllFiles(file, type, destDir);
}
}
}
/**
* 功能:获得指定文件夹下某格式的所有文件(遍历文件夹下指定格式的所有文件)
* @param file 目标文件夹路径
* @param type 文本文件格式类型
* @return filesAll 返回File的ArrayList集合
*/
@SuppressWarnings("null")
public static ArrayList<File> takeTypeFiles(File file, String type) {
ArrayList<File> filesAll = null;
File[] files = File.listRoots();
for (File f : files) {
if (f.isFile() && f.getName().toLowerCase().endsWith(type)) {
filesAll.add(f);
} else if (f.isDirectory()) {
takeTypeFiles(f, type);
}
}
return filesAll;
}
/**
* 功能:获得指定文件夹下某格式的所有文件(遍历文件夹下所有文件)
* @param srcDir 目标文件夹路径
*/
@SuppressWarnings("null")
public static ArrayList<File> takeAllFiles(File srcDir) throws IOException {
ArrayList<File> filesAll = null;
File[] files = srcDir.listFiles();
for (File file : files) {
if (file.isFile()) {
filesAll.add(file);
} else if (file.isDirectory()) {
takeAllFiles(file);
}
}
return filesAll;
}
/**
* 功能:获得指定文件夹下某格式的所有文件(遍历文件夹)
* @param src 目标文件夹路径
*/
@SuppressWarnings("null")
public static ArrayList<File> getAllFiles(File src) {
ArrayList<File> filesAll = null;
File[] files = src.listFiles();
for (File file : files) {
filesAll.add(file);
if (file.isDirectory()) {
getAllFiles(file);
}
}
return filesAll;
}
}
慢慢来,该学的东西还有很多,路还很长,不过为了自己想要的生活一定要好好加油!!!慢慢的以后肯定会好的!!!!!