版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_41690324/article/details/81637414
复制多级文件夹案例
package someExample;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 复制多级文件夹案例
*
* 需求:复制多极文件夹
*
* 数据源:G:\Java\demos
* 目的地:G:\\
*
* 分析:
* A:封装数据源File
* B:封装目的地File
* C:判断该File是文件还是文件夹
* a:是文件夹
* 就在目的地目录下创建该文件夹
* 获取该File对象下的所有文件或者文件夹File对象
* 遍历得到每一个File对象
* 回到C
* b:是文件
* 就复制(字节流)
*/
public class copyFoldersDemo {
public static void main(String[] args) throws IOException {
// 封装数据源
File srcFolder = new File("D:\\a\\demos");
// 封装目的地
File destFolder = new File("D:\\");
// 复制文件夹功能
copyFolder(srcFolder, destFolder);
}
/**
* 复制文件夹方法
*
* @param srcFolder
* 数据源
* @param destFolder
* 目的地
*/
public static void copyFolder(File srcFolder, File destFolder)
throws IOException {
// 判断该File是文件还是文件夹
if (srcFolder.isDirectory()) {
// 文件夹
File newFolder = new File(destFolder, srcFolder.getName());
newFolder.mkdir();
// 获取该File对象下的所有文件或者文件夹File对象
File[] fileArray = srcFolder.listFiles();
// 遍历得到每一个File对象
for (File file : fileArray) {
copyFolder(file, newFolder);
}
} else {
// 文件
File newFile = new File(destFolder, srcFolder.getName());// G:\d.txt
// 复制文件功能
copyFile(srcFolder, newFile);
}
}
/**
* 复制文件方法
*
* @param srcFolder
* 数据源
* @param newFile
* 目的地
*/
public static void copyFile(File srcFolder, File newFile)
throws IOException {
// 封装数据源
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
srcFolder));
// 封装目的地
BufferedOutputStream bos = new BufferedOutputStream(
new FileOutputStream(newFile));
// 读写数据
byte[] bys = new byte[1024];
int len = 0;
while ((len = bis.read(bys)) != -1) {
bos.write(bys, 0, len);
bos.flush();
}
// 释放资源
bos.close();
bis.close();
}
}
把一个文件中的字符串排序后再写入另一个文件案例
package someExample;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Arrays;
/*
* 把一个文件中的字符串排序后再写入另一个文件案例
*
* 需求:已知s.txt文件中有这样的一个字符串:"hcexfgijkamdnoqrzstuvwybpl"
* 请编写程序读取数据内容,把数据排序后写入ss.txt中
*
* 分析:
* A:把s.txt文件这个文件做出来
* B:读取该文件的内容,存储到一个字符串中
* C:把字符串转为字符数组
* D:对字符数组进行排序
* E:把排序后的字符数组转换为字符串
* F:把字符串再次写入ss.txt中
*/
public class StringDemo {
public static void main(String[] args) throws IOException {
// 读取该文件的内容,存储到一个字符串中
BufferedReader br = new BufferedReader(new FileReader("s.txt"));
String line = br.readLine();
br.close();
// 把字符串转为字符数组
char[] chs = line.toCharArray();
// 对字符数组进行排序
Arrays.sort(chs);
// 把排序后的字符数组转换为字符串
String s = new String(chs);
// 把字符串再次写入ss.txt中
BufferedWriter bw = new BufferedWriter(new FileWriter("ss.txt"));
bw.write(s);
bw.newLine();
// 释放资源
bw.close();
}
}