杰神之Java中File的用法

原创 2018年01月29日 21:58:40
1.作用:a.操作文件  b.操作文件夹 c.操作文件的路径

2.构造方法
a.File(String pathname);通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
b.File(String parent,String child);  根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
c.File(File parent,String chile);    根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
3.方法
a.创建功能
public boolean createNewFile();    当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
public boolean mkdir(); 创建此抽象路径名指定的目录。
public boolean mkdirs(); 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
b.删除功能
public boolean delete();  删除此抽象路径名表示的文件或目录。
c.判断功能
public boolean isDirectory()//判断是否是文件夹
public boolean isFile();//判断是否是文件
public boolean exists();//判断文件/文件夹是否存在
d.获取功能
public String getPath()//将此抽象路径名转换为一个路径名字符串。
public String getName();// 返回由此抽象路径名表示的文件或目录的名称。
public long length();// 返回由此抽象路径名表示的文件的长度。
public String getAbsolutePath();//  返回此抽象路径名的绝对路径名字符串。
public File getAbsoluteFile();//    返回此抽象路径名的绝对路径名形式。
public File getParentFile();//  返回此抽象路径名父目录的抽象路径名;如果此路径名没有指定父目录,则返回 null。
public String getParent(); 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 nullpublic String [] list();//  返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
public File [] listFiles();// 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
4.字段摘要(静态成员变量)
a.static String pathSeparator//  与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
b.static String separator;//  与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
例题:

 public class Demo01{
     public static void main(String [] args) throws IOException{

     }
     //静态成员变量
     public static void fun1(){
         String pathseparator = File.pathSeparator;
         System.out.println(pathseparator);
         System.out.println(pathseparator);
/构造方法
//相对路径:有参照物
//绝对路径:硬盘上的路径,这个路径唯一
public static void fun3(){
//这里Mac系统下Desktop(桌面)/Test(这是名为Test的文件夹)
    File file = new File ("/Users/lanou/Desktop/Test");
    System.out.println(file);
    结果:/Users/lanou/Desktop/Test
 //判断该路径是否存在
 boolean b1 = file.exists();
 System.out.println(b1);
 结果:true
  //使用相对路径,参照物是当前工程根目录
  File file1 = new File("src/wl.txt");
  boolean b2 = file.exists();
  System.out.println(b2);
  结果:true

   //获取绝对路径
  String absolutePath = file1.getAbsolutePath();
  System.out.println(absolutePath);
  结果:/Users/lanou/eclipse-workspace/sh-day023/src/wl.txt

  //使用构造方法二
  String parent = "/Users/lanou/Desktop";
  String child = "/Test";
  //父路径 和 子路径
  File file2 = new File(parent,child);
  boolean b3 = file2.exists();
  System.out.println(b3);
  结果:true

  //构造方法3
  File f = new File(parent);
  File file3 = new File (f,child);
  System.out.println(file3.exists());
  结果:true
}
//创建文件--方法
public static void fun4(){

    File file = new File("/Users/lanou/Desktop/Test/haha.txt");
    boolean b1 = file.createNewFile();
    System.out.println(b1);
    结果:文件没有创建过--true,反之--false
    File b2 = new File("src/dp.txt");
    boolean b = b2.createNewFile();
    System.out.println(b);
    结果:结果:文件没有创建过--true,反之--false
    注:无论带不带后缀,都是文件
}
 //删除,所删除的东西,不经过垃圾回收站,删除的东西要小心
 public  static void fun5(){
     File file = new File ("/Users/lanou/Desktop/Test/x");
     boolean b1 = file.delete();
     System.out.println(b1);
    结果:有此文件删除--true,反之--false
 }
//判断文件是否存在
 public static void fun6(){
     File file = new File ("/Users/lanou/Desktop/Test/haha.txt");
     boolean b1 = file.isDirectory();
     System.out.println(b1);
   结果:有此文件夹--true,反之--false
   boolean b2 = file.isFile();
   System.out.println(b2);
   结果:有此文件--true,反之--false

 }
//获取路径,我们所获取的路径,不管是否存在,都会打印所实例的对象路径
 public static void fun7(){
     File file = new File("/Users/lanou/Desktop/Test/www.txt");
     Sytring path = file.getPath();
     System.out.println(path);
     结果:/Users/lanou/Desktop/Test/www.txt
    //获取文件名字
    String name = file.getName();
    System.out.println(name);
    结果:www.txt
    //获取文件所占用的字节
    long length = file.length();
    System.out.println(length);
    结果:这里面,我在www.txt里面输入了一个"wang" 打印是 4个字节
    注:英文--1个字节
        中文--3个字节(这里UTF-8)
        不同编码格式字节数不一样的
//获取父级路径
   File parentFile = file.getParentFile();
   System.out.println(parentFile);
   结果:/Users/lanou/Desktop/Test
 }
  //list与 listFiles方法
  public void fun8(){
      File file = new File ("/Users/lanou/Desktop/Test");
      String [] list = file.list();
      for(String string : file.list){
          System.out..println(string);
        结果:
.DS_Store
g
haha
haha.txt
hahah.txt
www.txt
x
注:这个是我所创建的Test文件夹下所有文件和文件夹的名字,且仅仅能查看一层,.DE-Store是隐藏文件,

  File [] listFiles = file.listFiles();
  for(File file2 :listFiles){
      System.out.println(file2);
      结果
/Users/lanou/Desktop/Test/.DS_Store
/Users/lanou/Desktop/Test/g
/Users/lanou/Desktop/Test/haha
/Users/lanou/Desktop/Test/haha.txt
/Users/lanou/Desktop/Test/hahah.txt
/Users/lanou/Desktop/Test/www.txt
/Users/lanou/Desktop/Test/x
注:listFiles返回的是文件与文件夹的全路径名,是以对象形式
        } 

      }
  //遍历Test下所有的文件夹下所有文件和文件夹
 public static void fun9(){
     File file = new File("/Users/lanou/Desktop/Test");
    File [] listFiles = file.listFiles();
    for(File f : listFiles){
        if(f.isDirectory()){
            getFileName(f);
        }else{
            System.out.println(f);
结果:
/Users/lanou/Desktop/Test/.DS_Store
/Users/lanou/Desktop/Test/haha.txt
/Users/lanou/Desktop/Test/hahah.txt
/Users/lanou/Desktop/Test/www.txt
/Users/lanou/Desktop/Test/x/.DS_Store

/Users/lanou/Desktop/Test/x/y/z/www.txt
        }
    }
  }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

杰神之Java第一课

Java初识
  • lyj243719866
  • lyj243719866
  • 2017年12月27日 19:50
  • 156

杰神之Java合并流的使用

SequenceInputStream合并流 作用: 可以把多个文件合并成一个文件 构造方法(两种): 1.参数是 迭代器 是Vector特有的 该Vector要保存的是InputStrea...
  • lyj243719866
  • lyj243719866
  • 2018年02月05日 20:53
  • 8

杰神之Java泛型的应用

泛型 /* * 保存字符串 * ArrayList E就代表 要保存的元素类型 * 后面的尖括号 要跟前面填的泛型保持一致 * 如果前面声明了泛...
  • lyj243719866
  • lyj243719866
  • 2018年01月22日 21:41
  • 30

杰神之Java缓冲流和序列化的用法

缓冲流 1:定义:在内存与硬盘之间创建一个大小合适的缓冲区,当内存和硬盘进行数据访问时,能提高访问硬盘的次数,提高效率。 2:分类:缓冲分为字节缓冲流(BufferedInputStream和Bu...
  • lyj243719866
  • lyj243719866
  • 2018年02月01日 21:33
  • 16

杰神之Java类和对象的关系

Java 类和对象 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行...
  • lyj243719866
  • lyj243719866
  • 2018年01月08日 21:39
  • 151

杰神之Java接口JDK1.8新特性

Java接口 什么是接口? 接口其实也就是规则. 为什么要有接口? 因为在java中只有不能多继承,只能单继承多层继承,所以有时候想要多继承的时候就可以用到接口.在java中不叫继承接口,而是...
  • lyj243719866
  • lyj243719866
  • 2018年01月15日 20:55
  • 18

BZOJ 4407: 于神之怒加强版|莫比乌斯反演

不会搞数学公式很苦恼!! flag:会写数学公式之后一定好好写一发题解 非常感谢龙爷(sd第一男选手!!可惜神犇都不写blog)提供线性筛做法 2.16————————————————- 一下...
  • ws_yzy
  • ws_yzy
  • 2016年02月15日 20:34
  • 1318

【BZOJ4407】于神之怒加强版

Description给下N,M,K.求 Input输入有多组数据,输入数据的第一行两个正整数T,K,代表有T组数据,K的意义如上所示,下面第二行到第T+1行,每行为两个正整数N,M,其意义如上...
  • CreationAugust
  • CreationAugust
  • 2016年02月16日 10:18
  • 1402

java从菜鸟到大神的成神之路学习路线_me

JAVA从菜鸟到大神的学习路线
  • fangfengzhen115
  • fangfengzhen115
  • 2015年12月09日 17:38
  • 2055

杰神之Java数组概述

Java 数组数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。 Java 语言中提供的数组是用来存储固定大小的同类型元素。 你可以声明一个数组变量,如 ...
  • lyj243719866
  • lyj243719866
  • 2018年01月03日 20:02
  • 165
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:杰神之Java中File的用法
举报原因:
原因补充:

(最多只允许输入30个字)