初学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流的创建方法不同,不至于覆盖本来的文件
初学File类的更多相关文章
- java中File类的使用
public class FileLei { public static void main(String[] args) throws IOException { //..表示上 ...
- File 类
File 类:文件和目录(文件夹)路径名的抽象表现形式. 方法 1.创建功能 public boolean createNewFile():创建文件 public boolean mkdir():创建 ...
- C#File类常用的文件操作方法(创建、移动、删除、复制等)
File类,是一个静态类,主要是来提供一些函数库用的.静态实用类,提供了很多静态的方法,支持对文件的基本操作,包括创建,拷贝,移动,删除和 打开一个文件. File类方法的参量很多时候都是路径path ...
- File类基础
File类的作用: Java的io包中定义了File类,用于对文件或文件夹的管理操作. File类只能够用于表示文件或文件夹的信息(属性)和对该文件或文件夹的删除创建操作 (不能对内容进行访问) 通过 ...
- 【转】File类应用 - FilenameFilter 和 FileFilter
FilenameFilter & FileFilter FilenameFilter 和 FileFilter 都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码 ...
- Java篇-File类之创建删除
/** * */ package com.io.file; import java.io.File; import java.io.IOException; import org.junit.Test ...
- JavaIO之File类
Java-IO之File类 Java-IO之File类 1. File类 1.1. File类说明 1.2. 体验 File 类 1.3. 构造一个 File 类实例: 1.4. 路径: 1.4.1. ...
- I/O流——File类及使用
I/O框架介绍 I/O是计算机输入/输出的接口.Java的核心库java.io提供了全方面的I/O接口,包括:文件系统的操作,文件读写,标准设备的输出等. File类及使用 ① 一个File类的对 ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
随机推荐
- 静态(static)代码块、构造代码块、构造函数、父类子类执行顺序
静态代码块:static修饰的代码块. 在类加载-初始化的时候进行,主要目的是给变量赋予初始值 构造代码块:直接在类中定义且没有加static关键字的代码块称为构造代码块. java会把构造代码块放到 ...
- hibernate(五) hibernate一对一关系映射详解
序言 之前讲解了一对多(单向.双向).多对多(双向),今天就讲解一下最后一个关系,一对一. 心情不错.状态也挺好的,赶紧写一篇博文造福一下大家把. --WH 一.一对一关系的概述 一对一关系看起来简单 ...
- (转)Shell函数
Shell函数类似于Shell脚本,里面存放了一系列的指令,不过Shell的函数存在于内存,而不是硬盘文件,所以速度很快,另外,Shell还能对函数进行预处理,所以函数的启动比脚本更快. 1. 函数 ...
- pomelo获取客户端IP
代码: Handler.prototype.getClientIp = function(msg, session, next) { var ip = session.__session__.__so ...
- 献给所有从事IT行业拥有梦想的英语渣们
本文适合读者:从小到大英语都不好,如今选择IT行业需要重拾英语追寻梦想的人,英语大神们请绕行.. 目录 一.背景介绍 二.明确学习目标 2.1 英文文法 2.2 词汇量 三.题外话 3.1 关于本文 ...
- Gephi可视化(一)——使用Gephi Toolkit创建Gephi应用
在Prefuse上摸打滚爬了一段时间,发现其和蔼可亲,容易上手.但是每每在打开gephi,导入数据再运行时,总还是在心里暗自赞叹gephi的绚烂之极,无与匹敌,当然,gephi也有自己的缺陷,但是ge ...
- 每日学习总结<二> 2015-9-1
Android: 知识点: 子线程中无法更新UI,因为UI是线程不安全的. Android的UI单线程模式: 不能阻塞UI线程: 不能从UI线程的外部访问Android UI toolkit ...
- Azure PowerShell (1) PowerShell整理
<Windows Azure Platform 系列文章目录> 把之前Azure ASM的PowerShell都整理好了. https://github.com/leizhang1984/ ...
- C# 线程系列三 定时器线程
上一篇文章我们讲诉了自定义线程执行器和任务处理器 我们继续来讲解自定义线程的定时执行器,我们在很多场景下需要做到某些状态或者数据进行更新,如果事情很多很杂,很时候时候会创建很多不同的定时器那么势必会照 ...
- 记一个同时支持模糊匹配和静态推导的Atom语法补全插件的开发过程: 序
简介 过去的一周,都睡的很晚,终于做出了Atom上的APICloud语法提示与补全插件:apicloud_autocomplete.个中滋味,感觉还是有必要记录下来的.代码基于 GPL-3.0 开源, ...