对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流的创建方法不同,不至于覆盖本来的文件

初学File类的更多相关文章

  1. java中File类的使用

    public class FileLei {    public static void main(String[] args) throws IOException {        //..表示上 ...

  2. File 类

    File 类:文件和目录(文件夹)路径名的抽象表现形式. 方法 1.创建功能 public boolean createNewFile():创建文件 public boolean mkdir():创建 ...

  3. C#File类常用的文件操作方法(创建、移动、删除、复制等)

    File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path ...

  4. File类基础

    File类的作用: Java的io包中定义了File类,用于对文件或文件夹的管理操作. File类只能够用于表示文件或文件夹的信息(属性)和对该文件或文件夹的删除创建操作 (不能对内容进行访问) 通过 ...

  5. 【转】File类应用 - FilenameFilter 和 FileFilter

    FilenameFilter & FileFilter FilenameFilter 和 FileFilter 都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码 ...

  6. Java篇-File类之创建删除

    /** * */ package com.io.file; import java.io.File; import java.io.IOException; import org.junit.Test ...

  7. JavaIO之File类

    Java-IO之File类 Java-IO之File类 1. File类 1.1. File类说明 1.2. 体验 File 类 1.3. 构造一个 File 类实例: 1.4. 路径: 1.4.1. ...

  8. I/O流——File类及使用

    I/O框架介绍 I/O是计算机输入/输出的接口.Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等. File类及使用 ①   一个File类的对 ...

  9. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

随机推荐

  1. 字符串中判断存在的几种模式和效率(string.contains、string.IndexOf、Regex.Match)

    通常情况下,我们判断一个字符串中是否存在某值常常会用string.contains,其实判断一个字符串中存在某值的方法有很多种,最常用的就是前述所说的string.contains,相对来说比较常用的 ...

  2. CCNA学习 NAT网络地址转换

    CCNA基础 NAT网络地址转换 在计算机网络中,网络地址转换(Network Address Translation,缩写为NAT),也叫做网络掩蔽或者IP掩蔽(IP masquerading),是 ...

  3. KlayGE 4.4中渲染的改进(三):高质量无限地形

    转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2761   本系列的上一篇讲了DR中的一些改进.本篇开始将描述这个版本加入的新功能,高质量地形 ...

  4. GridView里做页面的链接

    采用Gridview的OnRowDataBound属性 后台 protected void gvTranslateInfo_RowDataBound(object sender, GridViewRo ...

  5. knockoutjs中使用mapping插件绑定数据列表

    使用KO绑定数据列表示例:   1.先申请V,T,T2三个辅助方法,方便调试.声明viewModel和加载数据时的映射条件mapping    2.先使用ko.mapping.fromJS()将原来的 ...

  6. 2014PPTV-题解

    今天在看PPTV几道题目,顺便联系起红宝书<JavaScript高级程序设计>一起看了起来. 1. var msg = 'hello';//顶级作用域windwo下有个变量msg func ...

  7. Tridiv:基于 Web 的 CSS 编辑器,创建炫丽 3D 图形

    Tridiv 是一个基于 Web 的编辑器,使用 CSS 创建 3D 形状.它提供了一个传统的四个面板的操作界面,给出了从每个平面的视图,以及一个预览窗格中示出的最终的效果.使用 Tridiv 可以创 ...

  8. [git]撤销的相关命令:reset、revert、checkout

    基本概念 工作区 暂存区 本地版本仓库 远程版本仓库 如果不清晰上面的四个概念,请查看廖老师的git教程 这里我多说几句:最开始我使用git的时候,我并不明白我为什么写完代码要用git的一些列指令把我 ...

  9. c# 多线程系列二 自定义线程执行器

    看了第一篇文章,多线程系列,看到了在线程执行任务队列有了一定的了解~! 那么今天我来讲讲,怎么样构建通用的自定义线程概念! 线程执行任务,肯定要有目标,但是如果写死了,那么一个线程处理执行职能按照思路 ...

  10. [UWP]涨姿势UWP源码——IsolatedStorage

    前一篇涨姿势UWP源码分析从数据源着手,解释了RSS feed的获取和解析,本篇则会就数据源的保存和读取进行举例. 和之前的Windows Runtime一样,UWP采用IsolatedStorage ...