java.io.File类
文件和目录路径名的抽象表示形式,与平台无关。
File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输出/输入流。
File对象可以作为参数传递给流的构造函数
File类的常见构造函数:
public File(String pathname)
以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果pathname是相对路径,则默认的当前路径在系统属性user.id中储存
public File(String parent,String child)
以parent为父路径,child为子路径创建File对象
File的静态属性String separator储存了当前系统的路径分隔符
在UNIX中,此字段‘/’,在windows中,为’\\’
例:
public class io {
public static void main(String []args){
File f =new File("D:\\lsp");//这个时候f就是lsp文件夹(使用较多)
File f1=new File("D:","lsp");//这个时候f1也是lsp文件夹
//注意,\在文件中是路径的分隔符,但是在java编程中一个\的意思是转移符,在java中\\或者/才是文件的分隔离符
//也可以File.separator作为文件分隔符
}
}
System.out.println(f.getName());//获取当前文件名或文件夹名
File f2 =new File("src\\oop1\\ha.java");
System.out.println(f.getPath());//获取当前文件或文件夹的路径,就是new File时候写的路径
System.out.println(f.getAbsolutePath());//获取当前文件或文件夹的绝对路径
System.out.println(f.getParent());//获取当前文件或文件夹的父级路径
f.renameTo(new File("D:\\lsp2"));//给文件或文件夹重命名
System.out.println(f2.exists());//判断文件是否存在
System.out.println(f2.canWrite());//判断文件是否可写
System.out.println(f2.canRead());//判断文件是否可读
System.out.println(f2.isDirectory());//判断是否为文件夹
System.out.println(f2.isFile());//判断是否为文件
System.out.println(f2.lastModeified());//获取文件的最后修改时间,返回的是毫秒数
System.out.println(f2.length());//返回文件的长度,单位为字节数
文件操作相关
创建文件
public static void main(String []args){
File f4 =new File("D:\\lsp");
System.out.print(f4.exists());
if(!f4.exists()){ //当f4的文件不存在时创建f4的文件
try{
f4.createNewFile();//创建f4对象的文件
}catch(IOException e){
e.printStackTrace();
}
}
}
删除文件
f4.delete();
创建目录
File f5 =new File("D:\\test\\abc\\cc");
f5.mkdir();//创建单层目录,如果使用此方法创建多层目录 ,得一层一层创建
File f6 =new File("D:\\test\\abc\\a\\b\\c");
f6.mkdirs();//此方法直接用来创建多级目录
File f7 =new File("D:\\test");
String[] s1=f7.list(); //返回当前文件夹的子集,包括目录和文件
for(String s:s1){
System.out.print(s);
}
File[] fs =f7.listFiles();//返回的是当前文件夹的子集的file对象,包括目录和文件
for(File ff: fs){
System.out.print(ff);
}
遍历d盘下的test文件,把test文件夹下所有的目录与文件全部遍历出来,不论层级有多深,要全部遍历出来,用递归的方式实现
public void test(File file){
if(file.isFile()){
System.out.println(file.getAbsoultePath()+"是文件");}
}else{System.out.println(file.getAbsoultePath()+"是文件夹");
//如果是文件夹,这个文件夹里就有可能有子文件夹或者文件
File []fs =file.listFiles();//获取当前文件夹下的子文件夹或者文件的file对象
if(fs!=null&&fs.length>0){
for(File ff : fs){
test(ff);
}}}}