初学File类

对File类的基本方法的理解

今天刚开始学了File类 一开始看思想编程看得迷迷糊糊的,之后受不了了,直接去看API文档 归纳: File->java.util File类的主要方法:

构造方法: File(String pathname) File(String parent,String child) 顾名思义 parent\child File(File parent,String child) 顾名思义 parent\child 隐藏文件可以被获取也一定会被获取

1.创建: (1)创建文件: - createNewFile():boolean 在当前目录下创建抽象名称的文件 - createTempFile():boolean 在默认临时文件夹(在windows中为C:\Users\用户名\AppData\Local\Temp)下创建抽象名称的文件 - createTempFile(String prefix,String suffix):boolean 相当于createTempFile(String prefix,String suffix,null); 顾名思义创建prefix.suffix 在指定目录(dif所储存的抽象路径)创建文件 (2)创建文件夹: - mkdir:boolean 创建最后一级目录(若parent目录不存在,则不创建,返回false) - mkdirs:boolean 创建多级目录

2.获取信息 (1)获取文件的属性: canxxxx:boolean (xxxx=[Execute,Read,Write]) length():long 文件夹的length为0 lastModified():long (2)获取文件路径、名称: getxxxxx:String (xxxxx=[Name,Parent,Path,AbsolutePath,CanonicalPath]) Name=pathname\child Parent=parent\null Path=parent\child AbolutePath=绝对路径,从头到尾 CanonicalPath=绝对路径,但是会省略.. 即使实际文件不存在,也能执行这个语句

(3)获取文件 getxxxxx:File (xxxxx=[ParentFile,AbsoluteFile,CanonicalFile]) (4)获取有关数组 list():String[] list(FilenameFilter):String[] listFiles():File[] listFiles(FilenameFilter):File[] **当File对象为文件时,list返回的数组为null,因为这时对象里面没有东西,File对象不存在时,list返回的数组不为null,但是数组长度为0 **

3.判断 isxxxxx:boolean (xxxxxx=[Directory,File,Hidden,Absolute]) exists:boolean

4.操作 delete():boolean 执行语句了就删除 不管是否正在操作这个文件 deleteOnExit:void 在虚拟机退出时才删除 renameTo(File file):boolean 可用于重命名和剪切

几个陷阱: 1.将文件创建成目录,或将目录创建成文件 所以要选择好创建的方法

public static void main(String[] args)throws IOException{
    File files=new File("123.txt");
    //想要创建一个名为123.txt的文件
    files.mkdirs();
}

得到的结果:创建了一个名为123.txt的文件夹

还有一种情况:

public static void main(String[] args)throws IOException{
    File files=new File("C:\\csdn","123.txt");
    //想要创建C:\csdn\123.txt
    //!files.createNewFile();
    //但是不存在C:\csdn这个目录 这是会抛出IOException->RunTimeException
    files.mkdirs();
    //这句话可以执行,不会报错,但是把123.txt当成一个目录去创建
}

这种情况我还没有想到很好的解决方案 一种思路 将父目录封装成一个对象 创建一个方法 public static File mkFile(File file,String x){code} 然后利用File的重载构造方法File(File file,String child)

2.io流对File进行操作的时候,File被删除 所以就有了deleteOnExit() 因为对File进行操作完肯定要删掉他

3.isFile()和isDirectory()都出错 当这个抽象路径不存在时,即为一个不与文件(夹)连接的对象 此时isFile()和isDirectory()均返回false

File类的优点: 判断机制: 在IO中,创建文件,不论这个文件是否存在都会创建,如果存在即被覆盖,只有会丢失数据 但是File中只有执行了获取方法才会创建对象 利用exists方法判断,有这个文件(夹)我就不建,没有这个文件(夹)我就建立 compareTo(File)和length()方法可以用于排序,实现计算机中根据名称、大小、日期等等

对File的看法: File这个类很神奇,可以把文件或文件夹封装成一个对象,即使不存在这个对象,也可以把抽象路径封装成对象(假装有这个对象) 正是因为假装有这个对象,才会与IO流的创建方法不同,不至于覆盖本来的文件

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 代理

    代理就像个中介,最外层操作代理对象,代理对象再调用委托对象 当需要在调用前后做一些处理,但是这些处理与业务逻辑无关的时候,如果把无关代码写在业务逻辑里面,代码就...

    用户1174983
  • SpringMVC类型转换器、属性编辑器PropertiesEditor源码分析CustomDateEditor源码分析TypeConverterDelegate源码分析

    对于MVC框架,参数绑定一直觉得是很神奇很方便的一个东西,在参数绑定的过程中利用了属性编辑器、类型转换器 参数绑定流程 参数绑定:把请求中的数据,转化成指定类型...

    用户1174983
  • jvm内存溢出分析内存溢出是什么?内存溢出和内存泄漏有什么区别?用到的jvm参数分析解决方法分析

    概述 jvm中除了程序计数器,其他的区域都有可能会发生内存溢出 内存溢出是什么? 当程序需要申请内存的时候,由于没有足够的内存,此时就会抛出OutOfMemor...

    用户1174983
  • Java基础之IO流(一)

    回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了。那怎么办呢?能不能把运算完的数据都保存下来,下...

    Remember_Ray
  • 第53节:Java当中的IO流(上)

    在Java中,字符串string可以用来操作文本数据内容,字符串缓冲区是什么呢?其实就是个容器,也是用来存储很多的数据类型的字符串,基本数据类型包装类的出现可以...

    达达前端
  • File 类基础解析3 文件过滤器优化

    java.io.FileFilter 是一个接口,是File的过滤器。 该接口的对象可以传递给File类的 listFiles(FileFilter) 作为参数...

    一只胡说八道的猴子
  • IO基础内容(File)

    JavaIO基础内容 IO技术概述 Output 把内存中的数据存储到持久化设备上这个动作称为输出(写)Output操作 Input 把持久设备上的数据读取到内...

    李家酒馆酒保
  • 知识点——初识java中File类

    SUN公司提供给开发者操作文件和文件夹的一个类对象。 Java中万物皆对象,计算机中万物皆文件

    用户7073689
  • CUDA assertion error binary_cross_entropy loss

    A CUDA assertion error pops up when setting --no_lsgan. It seems it's because th...

    于小勇
  • IDEA设置方法参数列表类型自动提示

    noteless

扫码关注云+社区

领取腾讯云代金券