zoukankan      html  css  js  c++  java
  • 第二十四章——文件管理的代码保存

    这是关于文件的增删改查代码的记录:

    package com.maya.hanqi.filemanager;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Scanner;
    
    public class TestFileManager {
    
        private static Map<String, File> fileMap = new HashMap<String, File>();
    
        private static boolean lock = true;
    
        public static void main(String[] args) {
            Scanner scanner = null;
            while (lock) {
                showContent();
                scanner = new Scanner(System.in);
                System.out.println("1---在选定的目录下创建文件夹");
                System.out.println("2---将选定的文件改名");
                System.out.println("3---将选定的文件删除");
                System.out.println("4---将选定的文件复制到另一个路径");
                System.out.println("5---退出");
                String console = scanner.nextLine();
                if ("1".equals(console)) {
                    System.out.println("想在哪个文件夹下创建 ?");
                    String path = scanner.nextLine();
                    System.out.println("输入新文件夹的名字...");
                    String folderName = scanner.nextLine();
                    createFolder(path, folderName);
                }
                if ("2".equals(console)) {
                    System.out.println("说 ! 改谁 ?");
                    String fname = scanner.nextLine();
                    System.out.println("改成什么 ?");
                    String targetName = scanner.nextLine();
                    renameFile(fname, targetName);
                }
                if ("3".equals(console)) {
                    System.out.println("又看谁不顺眼了啊 ?");
                    String fname = scanner.nextLine();
                    deleteFile(fname);
                }
                if ("4".equals(console)) {
                    System.out.println("复制哪个 ?");
                    String fname = scanner.nextLine();
                    System.out.println("复制到哪里 ?");
                    String targetPath = scanner.nextLine();
                    copyFile(fname, targetPath);
                }
                if ("5".equals(console)) {
                    lock = false;
                    System.err.println("系统已经退出 !");
                }
            }
            scanner.close();
        }
    
        public static void showContent() {
            File file = new File("E:\java\folder");
            System.out.println(file.getName());
            fileMap.put(file.getName(), file);
            factFile(file, 1);
        }
    
        public static void copyFile(String fname, String targetPath) {
            File file = fileMap.get(fname);
            BufferedReader br = null;
            BufferedWriter bw = null;
            String sc = null;
            if (!(file == null)) {
                if (fileMap.get(targetPath).isDirectory()) {
                    try {
                        File newFile = new File(fileMap.get(targetPath).getPath() + "\" + fname);
                        br = new BufferedReader(new FileReader(fileMap.get(fname)));
                        bw = new BufferedWriter(new FileWriter(newFile));
                        while ((sc = br.readLine()) != null) {
                            bw.write(sc);
                        }
                        br.close();
                        bw.close();
                        System.err.println("文件复制成功 !");
                    } catch (FileNotFoundException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                } else {
                    System.err.println("目标路径不是文件夹, 不能复制 !");
                    return;
                }
            } else {
                System.err.println("输入的路径不存在 !");
            }
        }
    
        public static void deleteFile(String fname) {
            File file = fileMap.get(fname);
            if (!(file == null)) {
                if(file.listFiles().length > 0) {
                    System.err.println("不是空文件夹, 无法删除 !");
                    return;
                }
                file.delete();
                fileMap.remove(fname);
                System.err.println("文件已删除 !");
            } else {
                System.err.println("输入的路径不存在 !");
            }
        }
    
        public static void renameFile(String fname, String targetName) {
            File file = fileMap.get(fname);
            if (!(file == null)) {
                File newFile = new File(file.getParentFile().getPath() + "\" + targetName);
                file.renameTo(newFile);
                System.out.println("文件名已经更改 !");
            } else {
                System.err.println("输入的路径不存在 !");
            }
        }
    
        public static void createFolder(String address, String folderName) {
            File file = fileMap.get(address);
            if (!(file == null)) {
                File newFile = new File(file.getPath() + "\" + folderName);
                if (newFile.mkdirs()) {
                    System.err.println("文件夹成功创建");
                } else {
                    System.err.println("创建文件夹失败");
                }
            } else {
                System.err.println("输入的路径不存在 !");
            }
        }
    
        public static void console(int k) {
            for (int a = 0; a < k; a++) {
                System.out.print("   ");
            }
        }
    
        public static void factFile(File file, int length) {
            if (file.exists() && file.isDirectory()) {
                File[] fs = file.listFiles();
                for (int i = 0; i < fs.length; i++) {
                    console(length);
                    System.out.println(fs[i].getName());
                    factFile(fs[i], length + 1);
                    fileMap.put(fs[i].getName(), fs[i]);
                }
            }
        }
    }
  • 相关阅读:
    多线程(三)
    多线程(二)
    多线程(一)
    网络编程socket套接字及其使用(六)
    网络编程socket套接字及其使用(五)
    网络编程socket套接字及其使用(四)
    网络编程socket套接字及其使用(三)
    网络编程socket套接字及其使用(二)
    网络编程socket套接字及其使用(一)
    html快速入门
  • 原文地址:https://www.cnblogs.com/yuanlaihenkuang/p/7008740.html
Copyright © 2011-2022 走看看