public class Test1 {
public static void main(String[] args) throws IOException {
//读 UTF-8的文件 写的时候是GBK格式
//创建InputStreamReader类的对象,用来封装数据源
//InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"),"UTF-8"));
//创建OutputStreamWriter类的对象,来封装目的地文件
//OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("b.txt"));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("b.txt"),"GBK"));
//正常的读写代码,核心六部
int ch;
while((ch=br.read())!=-1){
bw.write(ch);
}
br.close();
bw.close();
System.out.println("拷贝完成");
}
}
public class Test2 {
public static void main(String[] args) throws IOException {
//用字符高效流 来一次读写一行
//读b.txt 然后写到 c.txt中
BufferedReader br = new BufferedReader(new FileReader("b.txt")); //封装数据源文件
BufferedWriter bw = new BufferedWriter(new FileWriter("c.txt")); //封装目的地文件
//正常的读写代码
String line;
while((line=br.readLine())!=null){
bw.write(line);
bw.newLine(); //根据当前的系统,给出对应的换行符
}
br.close();
bw.close();
System.out.println("拷贝完成");
}
}
public class Test3 {
//private static long count;
public static void main(String[] args) {
//1,从键盘接收一个文件夹路径,统计该文件夹大小
File file = getDir();
long count = getLength(file); //计算要统计的文件夹的打下
System.out.println(count); //打印结果
}
//定义一个方法,用来计算文件的大小,
public static long getLength(File file){
//获取要计算的文件夹下的 所有的文件或者文件夹对象
File[] subFiles =file.listFiles();
//定义一个统计变量,用来记录各个文件的大小
long count=0;
//遍历获取到的File[],然后判断是文件还是 文件夹
for (File subFile : subFiles) {
if (subFile.isFile()) { //如果是文件,就直接计算大小,
//count = count + subFile.length();
count +=subFile.length();
} else {
//如果是文件夹,就递归调用
count += getLength(subFile);
}
}
return count;
}
//定义一个方法,接收用户录入的 文件夹路径
public static File getDir(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径");
while (true) { //如果用户录入的不是文件夹路径,就让用户一直录入
File file =new File(sc.nextLine());
//判断文件夹是否存在
if (!file.exists()) {
System.out.println("路径不存在,别捣蛋,写个正确的");
}else if(file.isFile()){
System.out.println("录入的是文件路径,重写录入一个:");
}else {
return file;
}
}
}
}
public class Test4 {
public static void main(String[] args) {
//File file = Test3.getDir();
File file = getDir();
deleteDir(file);
System.out.println("删除完成");
}
//定义一个方法,用来删除文件夹,
public static void deleteDir(File file){
//获取要计算的文件夹下的 所有的文件或者文件夹对象
File[] subFiles =file.listFiles();
//遍历获取到的File[],然后判断是文件还是 文件夹
for (File subFile : subFiles) {
if (subFile.isFile()) { //如果是文件,就直接删除,
subFile.delete();
} else {
//如果是文件夹,就递归调用
deleteDir(subFile);
}
}
//将当前文件夹删除
file.delete();
}
//定义一个方法,接收用户录入的 文件夹路径
public static File getDir(){
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件夹路径");
while (true) { //如果用户录入的不是文件夹路径,就让用户一直录入
File file =new File(sc.nextLine());
//判断文件夹是否存在
if (!file.exists()) {
System.out.println("路径不存在,别捣蛋,写个正确的");
}else if(file.isFile()){
System.out.println("录入的是文件路径,重写录入一个:");
}else {
return file;
}
}
}
}
|
|