Java文件操作

创建目录文件

// 目录文件创建
public static boolean createDir(String dirName) {
    String savePath = "D:\\Temp\\upload\\" + dirName;
    File dir = new File(savePath);
    if (dir.exists()) {
        deleteDir dd = new deleteDir();
        dd.delete(dirName);
    }
    if (!savePath.endsWith(File.separator)) {
        savePath = savePath + File.separator;
    }
    // 创建目录
    if (dir.mkdirs()) {
        System.out.println("创建目录" + dirName + "成功!");
        return true;
    } else {
        System.out.println("创建目录" + dirName + "失败!");
        return false;
    }
}

删除目录文件(包括子目录)

// 删除目录文件
public void delete(String dirName) {
    String savePath = "D:\\Temp\\upload\\" + dirName;
    // savePath不以分隔符结尾则自动添加分隔符
    if (savePath.endsWith(File.separator))
    savePath = savePath + File.separator;
    File file = new File(savePath);// 根据指定的文件名创建File对象
    //判断文件不为null或文件目录存在
    if (file == null || !file.exists()){
        System.out.println("文件删除失败,请检查文件路径是否正确");
        return;
    }
    //取得这个目录下的所有子文件对象
    File[] files = file.listFiles();
    //遍历该目录下的文件对象
    for (File f: files){
        //文件名
        String name = file.getName();
        String temp = dirName+"\\"+name;
        //判断子目录是否存在子目录,如果是文件则删除
        if (f.isDirectory()){
            delete(temp);
        }else {
            f.delete();
        }
    }
    //删除空文件夹  for循环已经把上一层节点的目录清空。
    file.delete();
    System.out.println("目录" + dirName + "删除成功!");
}

创建TXT文件

// 创建文件
public static void creatLogFile(String username) throws IOException {
    String path = "D:\\Temp\\upload\\"+username+"\\"+username+"_log.txt";
    File filename = new File(path);
    if (!filename.exists()) {
        filename.createNewFile();
    }
}

写入TXT文件(追加)

//将当前系统时间写入TXT文件
public static void writeFile(String username) {
    try {
        String file = "D:\\Temp\\upload\\"+username+"\\"+username+"_log.txt";
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file, true)));
        // 覆盖文件内容
        // BufferedWriter out = new BufferedWriter(new FileOutputStream(file, true));
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        System.out.println(formatter.format(date));
        out.write(formatter.format(date)+"\r\n"); // \r\n即为换行
        out.flush(); // 把缓存区内容压入文件
    } catch (IOException e) {
        e.printStackTrace();
    }
}

创建TXT文件

//读取TXT文件
public static List<String> readFile(String username) {
    List<String> list = new ArrayList<String>();
    try {
        String file = "D:\\Temp\\upload\\"+username+"\\"+username+"_log.txt";
        BufferedReader in = new BufferedReader(new FileReader(file));
            String str;
    while ((str = in.readLine()) != null) {
        list.add(str);
    }
    // 将列表翻转
    } catch (IOException e) {
        e.printStackTrace();
    }
    Collections.reverse(list);
    return list;
}

时间格式

// 实例化
Date date = new Date();
// 设置格式
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
System.out.println(formatter.format(date));

file.delete没有删除文件

一般来说 java file.delete失败 有以下几个原因

  1. 看看是否被别的进程引用,手工删除试试(删除不了就是被别的进程占用)
  2. file是文件夹 并且不为空,有别的文件夹或文件,
  3. 极有可能自己前面没有关闭此文件的流(我遇到的情况)

个人认为:首先用手动方式,即在电脑上找到要删除的文件看看能否删除,如果删除不掉,(个人遇到的也是,用到该文件的输入输出流没有关闭。)

仔细检查一下你代码的输入输出流,看看能力是否用了但是没有关闭。

参考文档:https://blog.csdn.net/baicp3/java/article/details/24773817

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。