Java 流操作文件实现文件夹及其中内容的复制粘贴

工作内容:

任务分配:组员1负责:主程序编写

**********************************
[1]新建目录 组员1 → createNewFolder(File file)
[2]新建文件 组员1 → createNewFile(File file)
[3]删除文件 组员2 → deleteFile(File file)
[4]删除文件夹 组员2 → deleteEmptyFloder(File file)
[5]删除文件夹里面所有的内容组员2 → deleteFolder(File file)
[6]复制文件 组员3 → copyFile(File sourceFile,File targetFile)
[7]复制文件夹的所有内容 组员3 → copyFolder(File sourceFile,File targetFile)
[8]移动文件到指定目录 组员4 → moveFile(File sourceFile,File targetFile)
[9]移动文件夹到指定目录 组员4 → moveFolder(File sourceFile,File targetFile)
[10]列出当前目录下文件名称组员1 → listFolderContentName(File file)
[11]退出程序 组员1 → exit
**********************************
传递参数:File对象
主函数处理:判断文件/路径是否存在,存在 → 调用方法

我是组员1:

完成操作:[1] [2] [10]

// [1]新建目录组员1 → createNewFloder(File file)
public boolean createNewFloder(File file){
if(file.exists()){
return false;
}else{
File parent = file.getParentFile();
//父目录存在不为空则创建父目录
if(parent != null){
file.mkdirs();
}else{
file.mkdir();
}
return true;
}
}
// [2]新建文件 组员1 → createNewFile(File file)
public boolean createNewFile(File file){
if(file.exists()){
return false;
}else{
try {
File parent = file.getParentFile();
if(parent != null){
parent.mkdirs();
file.createNewFile();
}else{
file.createNewFile();
}
} catch (Exception e) {
e.printStackTrace();
}
return true;
}
}

// [10]列出当前目录下文件名称刘世华 → listFloderContentName(File file)
public void listFloderContentName(File file){
if(file.exists()){
if(file.isFile()){
print("此File是一个文件:"+file.getName());
}if(file.isDirectory()){
File [] fileList = file.listFiles();
for (int i = 0; i < fileList.length; i++) {
if(fileList[i].isFile()){
print("文件:"+fileList[i].getName());
}else if (fileList[i].isDirectory()) {
File [] childFileList = fileList[i].listFiles();
if(childFileList.length > 0){
print("文件夹:"+fileList[i].getName()+"[子文件个数:"+childFileList.length+"]");
}else{
print("文件夹:"+fileList[i].getName()+"[空]");
}
}
}
}
}else{
System.out.println("文件路径不存在,或文件不存在");
}
}

// [7]复制文件夹及其中内容方法(传入源路径,传入目标路径)
public void copyFile(File source,File newFile){
/**
* 1.复制源文件夹的名称到新的路径下
* 2.遍历源文件夹的子文件
* 是文件:则在新的路径下创建源文件
* 是目录:递归
* 完成操作:返回
*/
File fileNewFile = new File(newFile.getPath()+"/"+source.getName());
fileNewFile.mkdir();
File [] sourceFileList = source.listFiles();
for (int i = 0; i < sourceFileList.length; i++) {
if(sourceFileList[i].isFile()){
//创建路径下的文件名称
File newFileName = new File(fileNewFile.getPath()+"/"+sourceFileList[i].getName());
try {
newFileName.createNewFile();
//读取源文件
FileReader fReader = new FileReader(sourceFileList[i]);
BufferedReader bReader = new BufferedReader(fReader); 
//写入目标文件
FileWriter  fWriter = new FileWriter(newFileName);
BufferedWriter bWriter = new BufferedWriter(fWriter);
String string = "";
//完成内容转移
while((string = bReader.readLine()) != null){
bWriter .write(string);
bWriter.newLine();
}
bWriter.close();
bReader.close();
fWriter.close();
fReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}else if (sourceFileList[i].isDirectory()) {
copyFile(sourceFileList[i], fileNewFile);
}
}
}

//附加方法

/**
* 判定是否是路径是否非法
*/
public boolean checkPathString(String  pathString){
if(pathString.indexOf('d') == 0 || pathString.indexOf('e') == 0 || pathString.indexOf('f') == 0){
if(pathString.indexOf(':') == 1){
print("路径正常");
return true;
}
}
return false;
}
//打印方法—println
public void print(String str){
outPrint.println(str);
}
//判断是否是数字
public boolean checkInputType(){
if(input.hasNextInt()){
return true;
}else{
input.nextLine();
return false;
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值