File 简述 1

File 简述

  • public class File extends Object implements Serializable, Comparable<File>:文件和目录路径名的抽象表示形式。
  • File 类的对象可以表示文件和目录,
  • File 对象并不能直接对文件进行读/写操作,只能查看文件的属性,读写操作可以使用IO流
  • JDK7 开始已经使用Files来替代了

构造方法摘要

File  pathname

  • public File(String pathname):通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
  • 如果给定字符串是空字符串,那么结果是空抽象路径名。 
  • 参数:pathname - 路径名字符串,可以是绝对或者相对路径
  • 抛出: NullPointerException - 如果 pathname 参数为 null

方法摘要

 exists

  • public boolean exists():测试此抽象路径名表示的文件或目录是否存在。 
  • 返回:当且仅当此抽象路径名表示的文件或目录存在时,返回 true;否则返回 false 

delete

  • public boolean delete()删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除。 
  • 返回:当且仅当成功删除文件或目录时,返回 true;否则返回 false 
  • 可以使用apache的FileUtils强删整个目录,不过里面有多少子目录,都会删除

getName

  • public String getName():返回由此抽象路径名表示的文件或目录的名称。
  • 该名称是路径名名称序列中的最后一个名称,如果路径名名称序列为空,则返回空字符串。 
  • 如File表示的是"E:\\Study_Note\\Java_SE\\Class.docx",则getName返回的

getAbsolutePath

  • public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串。 
  • 如果此抽象路径名已经是绝对路径名,则返回该路径名字符串,这与 getPath() 方法一样;如果此抽象路径名是相对路径,则会转为绝对路径;如果此抽象路径名是空抽象路径名,则返回当前用户目录的路径名字符串。

isFile

  • public boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
  • 如果该文件不是一个目录,并且满足其他与系统有关的标准,那么该文件是标准 文件。由 Java 应用程序创建的所有非目录文件一定是标准文件。 
  • 返回:当且仅当此抽象路径名表示的文件存在且 是一个标准文件时,返回 true;否则返回 false 
  • 如果File表示的文件或目录根本不存在,则返回false
package com.lct.utils;

import com.sun.jna.platform.FileUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
 * Created by Administrator on 2018/6/28 0028.
 */
public class LogWmxUtils {
    /**
     * 写入日志
     *
     * @param message
     */
    public static final void writeLine(String message) {
        try {
            if (message != null && !"".equals(message)) {
                File logDir = new File("logs");
                if (!logDir.exists()) {
                    logDir.mkdirs();
                }
                SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                String logName = simpleDateFormat1.format(new Date());
                String messageHead = simpleDateFormat2.format(new Date());

                File logFile = new File(logDir, logName + ".log");
                FileWriter fileWriter = new FileWriter(logFile, true);
                fileWriter.write(messageHead + "" + message + "\r\n");
                fileWriter.flush();
                fileWriter.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 清理日志目录下的日志文件
     */
    public static final void clearLogs() {
        /**写日志的时候采用相对目录,则删除的时候同样如此*/
        File logDirFile = new File("logs");
        /**日志目录存在时,才开始清理*/
        if (logDirFile.exists()) {
            /**写日志时,约定日志文件格式为:"yyyy-MM-dd.log"*/
            String todayLogFileName = DateFormatUtils.format(new Date(), "yyyy-MM-dd") + ".log";
            File[] fileArray = logDirFile.listFiles();
            if (fileArray != null && fileArray.length > 0) {
                String eachLogfileName = "";
                for (File file : fileArray) {
                    /**循环处理日志目录下的文件,如果日志文件名字与今天日志名字不一致,则删除掉
                     * 即只保留今天的日志文件
                     * 注意日志目录下面如果有子目录,则不做处理*/
                    eachLogfileName = file.getName();
                    if (!todayLogFileName.equals(eachLogfileName) && file.isFile()) {
                        file.delete();
                    }
                }
                LogWmxUtils.writeLine("Clear redundant log files under :" + logDirFile.getAbsolutePath());
            }
        }
    }
public static void main(String[] args) {
    writeLine("你好,中国!");
    clearLogs();
}
}


猜你喜欢

转载自blog.csdn.net/wangmx1993328/article/details/80854567