目录
了解java.io.File类常用的方法。
使用到的常量
- //文件
- public static final String MY_FILE = "C:\\Users\\huangshang\\Desktop\\demo\\es.txt";
- //文件2
- public static final String MY_FILE_TWO = "C:\\Users\\huangshang\\Desktop\\demo\\logs\\es.txt";
- //文件夹
- public static final String MY_DIR = "C:\\Users\\huangshang\\Desktop\\demo";
- //文件夹2
- public static final String MY_DIR_TWO = "C:\\Users\\huangshang\\Desktop\\demo\\config";
- public void getAbsoluteFilePath() throws IOException {
- File file = new File(MY_FILE);
- //返回File类型
- File absoluteFile = file.getAbsoluteFile();
- System.out.println(absoluteFile);
- //返回String类型
- String absolutePath = file.getAbsolutePath();
- System.out.println(absolutePath);
- }
- public void getFileName() {
- File file = new File(MY_FILE);
- String name = file.getName();
- System.out.println(name);
- }
- public void getParentFile() {
- File file = new File(MY_FILE_TWO);
- //返回String类型
- String name = file.getParent();
- System.out.println(name);
- //返回File类型
- File parentFile = file.getParentFile();
- System.out.println(parentFile);
- }
- public void createFile() throws IOException {
- File file = new File(MY_FILE);
- file.createNewFile();
- File absoluteFile = file.getAbsoluteFile();
- System.out.println(absoluteFile);
- }
- public void createDir(){
- File file = new File(MY_DIR_TWO);
- file.mkdir();
- File absoluteFile = file.getAbsoluteFile();
- System.out.println(absoluteFile);
- }
- public void deleteFile() {
- File file = new File(MY_DIR_TWO);
- file.delete();
- }
- public void isExist(){
- File myFile = new File(MY_FILE);
- File myDir = new File(MY_DIR);
- System.out.println(myFile.exists());
- System.out.println(myDir.exists());
- }
- public void isDir(){
- File myFile = new File(MY_FILE);
- File myDir = new File(MY_DIR);
- System.out.println(myDir.isDirectory());
- System.out.println(myFile.isDirectory());
- }
- public void isDir(){
- File myFile = new File(MY_FILE);
- File myDir = new File(MY_DIR);
- System.out.println(myFile.isFile());
- System.out.println(myDir.isFile());
- }
- public void isHidden(){
- File myFile = new File(MY_FILE);
- File myDir = new File(MY_DIR);
- System.out.println(myFile.isHidden());
- System.out.println(myDir.isHidden());
- }
- public void lastModified(){
- File myFile = new File(MY_FILE);
- File myDir = new File(MY_DIR);
- System.out.println(getFormatDate(myFile.lastModified()));
- System.out.println(getFormatDate(myDir.lastModified()));
- }
-
- public String getFormatDate(long time){
- Date date = new Date(time);
- SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String dateString = formatter.format(date);
- return dateString;
- }
- public void fileSize(){
- File myFile = new File(MY_FILE);
- System.out.println(myFile.length());
- }
- public void fileNameArr(){
- File dir = new File(MY_DIR);
- String[] arr = dir.list();
- for (String s : arr) {
- System.out.println(s);
- }
- }
- public void fileAbsolutePathArr(){
- File dir = new File(MY_DIR);
- File[] files = dir.listFiles();
- for (File s : files) {
- System.out.println(s.getAbsolutePath());
- }
- }
- public void filefilter(){
- File dir = new File(MY_DIR);
- String[] arr = dir.list(new FilenameFilter() {
- /**
- *
- * @param dir 文件所在的目录。
- * @param name 文件的名称。
- * @return
- */
- @Override
- public boolean accept(File dir, String name) {
- //筛选出txt格式的文件
- if(name.endsWith(".txt")){
- System.out.println("文件过滤器筛选出符合条件的文件:"+dir+"\\"+name);
- return true;
- }
- return false;
- }
- });
- for (String s : arr) {
- System.out.println(s);
- }
- }
- public List getAllFilesByDir(List<File> list, File file){
- if(file.isFile()){
- list.add(file);
- }else{
- File[] files = file.listFiles();
- if(files !=null&& files.length>0){
- for (File f : files) {
- getAllFilesByDir(list,f);
- }
- }
- }
- return list;
- }
- public List getAllDirs(List<File> list, File file){
- if(file.isDirectory()){
- list.add(file);
- File[] files = file.listFiles();
- if(files !=null&& files.length>0){
- for (File f : files) {
- getAllDirs(list,f);
- }
- }
- }else{
- return new ArrayList();
- }
- return list;
- }
- public List getAllEndDirs(List<File> list, File file){
- if(file.isDirectory()){
- File[] files = file.listFiles();
- if(files ==null || files.length==0){
- list.add(file);
- }else{
- boolean boo=true;
- for (int i=0;i<files.length;i++) {
- if(files[i].isDirectory()){
- break;
- }else if(i==files.length-1){//遍历该目录,发现都是文件,而没有文件夹。
- boo=false;
- list.add(file);
- }
- }
- if(boo){
- for (File f : files) {
- if(f.isDirectory()){
- getAllEndDirs(list,f);
- }
- }
- }
- }
- }else{
- return new ArrayList();
- }
- return list;
- }
- public List getAllIsNullEndDirs(List<File> list, File file){
- if(file.isDirectory()){
- File[] files = file.listFiles();
- if(files !=null && files.length>0){
- for (File f : files) {
- if(f.isDirectory()){
- getAllIsNullEndDirs(list,f);
- }
- }
- }else{
- list.add(file);
- }
- }else{
- return new ArrayList();
- }
- return list;
- }
- public List getAllIsNotNullEndDirs(List<File> list, File file){
- if(file.isDirectory()){
- File[] files = file.listFiles();
- if(files !=null && files.length>0){
- boolean boo=true;
- for (int i=0;i<files.length;i++) {
- if(files[i].isDirectory()){
- break;
- }else if(i==files.length-1){//遍历该目录,发现都是文件,而没有文件夹。
- boo=false;
- list.add(file);
- }
- }
- if(boo){
- for (File f : files) {
- if(f.isDirectory()){
- getAllIsNotNullEndDirs(list,f);
- }
- }
- }
- }
- }else{
- return new ArrayList();
- }
- return list;
- }