1.File对象对应你磁盘上的一个文件或者文件夹(路径),一个file对象表明了一个文件或者文件夹的引用,并非直接物理上的。java
2.File.separator: 链接符
public static final String separator与系统相关的默认名称 - 分隔符字符,以方便的方式表示为字符串。 该字符串包含一个字符,即separatorChar 。 (public static final char separatorChar与系统相关的默认名称分隔符。 该字段被初始化为包含系统属性值file.separator的第一个file.separator 。 在UNIX系统上,该字段的值为’/’ ; 在Microsoft Windows系统上是’\’ 。 )学习
3.建立File实例对象的几种方式
第一种:spa
File file = new File("D:\\abc.txt"); System.out.println(file);
第二种:.net
// parent 前面的路径 chid 在parent 后面追加的目录code
File file2 = new File("D:\\c", "abc.txt"); System.out.println(file2);
第三种:对象
File parent = new File("D:\\d"); File file3 = new File(parent, "qwe.doc"); System.out.println(file3);
4.建立文件blog
//返回的是否建立成功递归
try { boolean flag = file.createNewFile(); System.out.println(flag); } catch (IOException e) { e.printStackTrace(); }
5.判断文件是否可读写canRead() canWrite()rem
System.out.println(file.canRead()); // 判断文件是否可写 System.out.println(file.canWrite());
6 . 判断文件是否存在exists(), 若是不存在则 建立, 存在则不建立了字符串
if(!file2.exists()){// 判断文件是否存在
try { file2.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ System.out.println("已经存在了 "); }
7 .建立文件夹 单层mkdir()
String string = "D:\\d"; File file = new File(string); boolean flag = file.mkdir();// 建立文件夹 单层 System.out.println(flag);
8 .利用mkdirs 能够同时建立多层目录
File file2 = new File("D:\d\a\c\w");
file2.mkdirs();// 利用mkdirs 能够同时建立多层目录
9 . 如何区分 文件或者是 文件夹
if(file2.isDirectory()){// 判断是不是文件夹 System.out.println("是文件夹"); } if(file3.isFile()){ System.out.println("是文件"); }
10 . 删除指定文件
File file2 = new File("D:\\d\\a\\c\\w"); File file3 = new File(file2, "abc.txt"); boolean flag2 = file3.delete(); System.out.println(flag2);
11 .length()判断文件的长度 而非文件夹的长度 ,返回long类型的
long l = file3.length(); System.out.println(l);
12 .获得路径
File file = new File("D:\d\a\c\w\abc.txt");
System.out.println(file.getPath());// 获得路径
13 .System.out.println(file.getParent());// 获得 文件的父目录
14 . System.out.println(file.getParentFile());// 获得 文件的父目录 返回的是File对象
15 .// 重命名 被其余 占用的时候 就不能重命名成功
File file3 = new File("D:\\d\\a\\c\\w\\hehe.txt"); boolean flag = file.renameTo(file3); System.out.println(flag);
16.将文件过滤掉,文件夹保留
package com.qf.demo2;
import java.io.File;
import java.io.FilenameFilter;
/**
*/
public class Test4 {
public static void main(String[] args) { //File file = new File("D\\java上课内容\\2015新版PPT":); File file = new File("D:\\java上课内容"); String[] strings = file.list(); /*for (String string : strings) { System.out.println(string); } File[] files = file.listFiles(); for (File file2 : files) { System.out.println(file2); }*/ String[] strings2 = file.list(new MyFilter()); for (String string : strings2) { System.out.println(string); } File[] file2 = file.listFiles(new MyFilter()); for (File file3 : file2) { System.out.println(file3); } }
}
class MyFilter implements FilenameFilter{
// dir 指定的目录 name 是 dir 指定目录下的文件或者是文件夹的名字 public boolean accept(File dir, String name) {
// if(name.endsWith(".txt")){
// return false;
// }
// 假如是 文件 就 过滤掉, 若是是文件夹 , 就保留 // D:\\java上课内容 \\ java新版ppt File file = new File(dir,name); if(file.isFile()){ return false; } return true;// 返回ture 证实 保留下来的 // 返回 false 要被过滤掉的 }
}
17 .获得指定文件夹下的全部的文件
package com.qf.demo2;
import java.io.File;
/**
需求: 获得指定文件夹下的全部的文件
计算 指定文件夹 全部文件 和 文件夹的个数
*/
public class Test5 {
public static void main(String[] args) { findFile(new File("D:\\java上课内容")); } // 获得 指定文件夹下一层的全部的文件和文件 // // 若是是文件 打印输出, 若是文件夹 public static void findFile(File file){// 既能够表明文件也能够表明文件夹 // 保证非空 if(file != null){ // 保证是文件夹 if(!file.isFile()){ // 获得文件夹下的文件或者是 文件夹了 File[] files = file.listFiles();// 新版ppt ppt .pptx for (File file2 : files) {// 把全部的文件和文件夹遍历一遍 findFile(file2);// 不管是文件仍是文件夹 均可以调用 此方法 } }else{ System.out.println(file); } }else{ System.out.println("闹着玩呢???"); } }
}
1.错误示范1,输出的是建立文件夹 D:\filepath\test\test.txt。
public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName); if (!testFile.exists()) { testFile.mkdirs();// 能建立多级目录 } System.out.println("testFile:"+testFile); }} result--------------------testFile:D:\filepath\test\test.txt
2.错误示范2,若是 D:\filepath\test\ 文件夹不存在,会报错。
public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName); if (!testFile.exists()) { testFile.createNewFile();// 能建立多级目录 } System.out.println("testFile:"+testFile); }}
3.实如今多重目录下建立文件:话很少说上正确代码:
package com.zte.FileTest; import sun.net.ftp.FtpClient; //import com.zte.ums.cnms.pm.load.enums.MppFileDirEnum; import java.io.File; import java.io.IOException; public class FileTest { public static void main(String[] args) throws IOException { String fileName = "test.txt"; System.out.println("File.separator:" + File.separator); File testFile = new File("D:" + File.separator + "filepath" + File.separator + "test" + File.separator + fileName); File fileParent = testFile.getParentFile(); //返回的是File类型,能够调用exsit()等方法 String fileParentPath = testFile.getParent(); //返回的是String类型 System.out.println("fileParent:" + fileParent); System.out.println("fileParentPath:" + fileParentPath); if (!fileParent.exists()) { fileParent.mkdirs();// 能建立多级目录 } if (!testFile.exists()) testFile.createNewFile(); //有路径才能建立文件 System.out.println(testFile); String path = testFile.getPath(); String absolutePath = testFile.getAbsolutePath(); //获得文件/文件夹的绝对路径 String getFileName = testFile.getName(); //获得文件/文件夹的名字 System.out.println("path:"+path); System.out.println("absolutePath:"+absolutePath); System.out.println("getFileName:"+getFileName); }} result---------------------------------File.separator:\fileParent:D:\filepath\testfileParentPath:D:\filepath\testD:\filepath\test\test.txtpath:D:\filepath\test\test.txtabsolutePath:D:\filepath\test\test.txtgetFileName:test.txt
File类的常见方法(参考一位大牛的,不当心把连接关了)
1.建立。
boolean createNewFile(); //建立文件
boolean mkdir();建立文件夹
boolean mkdirs();建立多级文件夹。
2.删除。
boolean delete();
void deleteOnExit();在程序退出时删除文件。
3.判断。
boolean canExcute(); 判断是否可执行
boolean exists(); 文件事是否存在。
isFile();文件
isDirectory();文件夹
isHidden();//java能获得文件中的隐藏文件可是对隐藏文件时不能访问的
isAbsolute();//绝对路径即时不存在也能获得。
4.获取信息。
getName();
getPath();
getParent();
4.三种文件建立方式:
**File file = new File("E:/...");//文件/文件夹路径对象
File file = new File("..." ,""...);//父目录绝对路径 + 子目录名称
File file = new File("...","...");//父目录File对象 + 子目录名称**
file.exists():判断文件/文件夹是否存在
file.delete():删除文件/文件夹
file.isDirectory():判读是否为目录
file.isFile():判读是否为文件夹
**file.mkdir():建立文件夹(仅限一级目录)
file.mkdirs():建立多及目录文件夹(包括但不限一级目录)**
file.createNewFile():建立文件
file.getAbsolutePath():获得文件/文件夹的绝对路径
file.getName():获得文件/文件夹的名字
file.String():一样是获得文件/文件夹的绝对路径等于file.getAbsolutePath()
file.getParent():获得父目录的绝对路径String 不能够调用能够调用mkdir()方法
file.getParentFile():获得父目录的绝对路径的返回值是File型能够调用mkdir()方法
String[] gdir.list():获得目录的子目录\文件的名称(不是绝对路径)
File[] dir.listFiles():获得目录的子目录\文件事是否存在。
戳我领取:Java基础资料pdf最后的最后,为了节省你们在网上搜索资料的时间来学习,也能够分享给身边好友一块儿学习。给文章留个小赞,就能够免费领取啦~