File的基本操作
2013-03-28 15:49
141 查看
文件的简单操作
在java里,随处可见类。File类就是对文件操作的类。File的对象就代表一个文件或一个目录。下面我们要讨论的是File对文件操作的基本方法。文件分为目录文件,标准文件和虚拟内存文件,当然我们主要是对前面两种文件进行操作。
下面我们分条细道:
1)创建对象
File(File parent, String child) 根据 parent 抽象路径名和 child 路径名字符串创建一个新 File实例。 |
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File实例。 |
File(String parent, String child) 根据 parent 路径名字符串和 child 路径名字符串创建一个新 File实例。 |
File(URI uri) 通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。 |
使用较为简单 如:
File temFile = new File("D:/javastudy/测试文件101");
File temFile = new File(new File("D:\\javastudy"), "测试文件101");
File temFile = new File("D:\\javastudy", "测试文件101");
现在我们的temFile就代表了D盘下javastudy的测试文件101(不管它是否存在)。
注意到一点:在java里表示路径时,\\和/是一个含义。
2)由File对象去创建文件或文件夹
boolean | createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。 |
static File | createTempFile(String prefix, String suffix) 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
static File | createTempFile(String prefix, String suffix, File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
Java代码
<span style=""> </span><span style=""> temFile.createNewFile();
File.createTempFile("测试文件102", ".txt")
File.createTempFile("测试文件102", ".txt" ,new File "D:\\javastudy")).getAbsolutePath());
</span>
效果明显哦。
注意:当文件已经存在时 就不再会创建新的文件了。后面两个函数都是File类的静态函数,可以直接用类名调用,其返回值是File类型的。而且我们生成的文件名后面会带有比较长的随机数。
3)创建文件夹
<span style="">//在当前目录下创建测试文件夹101
//mkdir()只能在已经存在的目录中创建创建文件夹。
//mkdirs()可以在不存在的目录中创建文件夹。诸如:a\\b,既可以创建多级目录。
File temFile = new File("测试文件夹222");
temFile.mkdir();
//temFile.mkdirs();
System.out.println(temFile.getAbsolutePath());</span>
3)设置文件的属性
<span style="">temFile.setReadable(false);
temFile.setWritable(true);
temFile.setReadOnly();</span>
4)对文件属性的判断
<span style="">if(subFile[i].canExecute()){
System.out.println(subFile[i].getAbsolutePath() + " 是 可执行的 ");
}
if(subFile[i].canRead()){
System.out.println(subFile[i].getAbsolutePath() + " 是 可读的 ");
}
if(subFile[i].canWrite()){
System.out.println(subFile[i].getAbsolutePath() + " 是 可写的 ");
}</span>
<span style=""> if(subFile[i].isAbsolute())
System.out.println(subFile[i].getAbsolutePath() + " 是 一个绝对路径");
if(subFile[i].isDirectory())
System.out.println(subFile[i].getAbsolutePath() + " 是 一个目录");
if(subFile[i].isFile())</span>
<span style=""> System.out.println(subFile[i].getAbsolutePath() + " 是 一个文件");
if(subFile[i].isHidden())
System.out.println(subFile[i].getAbsolutePath() + " 是 一个隐藏文件");</span>
5)用于文件排序时的文件名首字母比较大小,返回值是int,为在字母表中排列的差。
<span style="">//前者首字母减去后者 若果遇到的是中文首字母开头 呐结果可就大了
System.out.println(subFile[i].getAbsolutePath()+" 与 "+subFile[0].getAbsolutePath()+" 的比较结果是: "+subFile[i].compareTo(subFile[0]));
if(subFile[i].equals(subFile[0])){
System.out.println(subFile[i].getAbsolutePath()+" 与 "+subFile[0].getAbsolutePath()+" 同一个");
}</span>
6)输出文件路径的七种方法,注意返回值
<span style="">//调用File里面的各种get方法返回文件或目录路径
//七种输出路径大方式
System.out.println("用getAbsoluteFile()返回文件或目录路径所输出的结果" + subFile[i].getAbsoluteFile());
System.out.println("用getAbsolutePath()返回文件或目录路径所输出的结果" + subFile[i].getAbsolutePath());
System.out.println("用getCanonicalFile()返回文件或目录路径所输出的结果" + subFile[i].getCanonicalFile());
System.out.println("用getCanonicalPath()返回文件或目录路径所输出的结果" + subFile[i].getCanonicalPath());
System.out.println("用toString()返回文件或目录路径所输出的结果" + subFile[i].toString());
System.out.println("用subFile[i]直接返回文件或目录路径所输出的结果" + subFile[i]);
System.out.println("用getPath()返回文件或目录路径所输出的结果" + subFile[i].getPath());</span>
7)输出文件的名字,父目录的名字
<span style="">System.out.println("用getName()返回文件或目录路径的名字" + subFile[i].getName());
System.out.println("用getParent()返回文件或目录路径的父目录" + subFile[i].getParent());
System.out.println("用getParentFile()返回文件或目录路径的父目录" + subFile[i].getParentFile());</span>
8)得到该文件或目录路径未分配的字节数,文件或目录路径所指向的分区的大小,文件或目录路径所指向的分区上课用于此虚拟机的字节数
<span style="">System.out.println("用getFreeSpace()返回该文件或目录路径未分配的字节数" + subFile[i].getFreeSpace());
System.out.println("用getTotalSpace()返回文件或目录路径所指向的分区的大小" + subFile[i].getTotalSpace());
System.out.println("用getUsableSpace()返回文件或目录路径所指向的分区上课用于此虚拟机的字节数" + subFile[i].getUsableSpace());</span>
9)得到其子目录
<span style="">System.out.println("用length()函数返回文件或目录的长度" + subFile[i].length());
System.out.println("用list()函数返回文件或目录中的目录 返回值为一个String" + subFile[i].list());
System.out.println("用File中的静态函数listRoots()函数返回系统磁盘目录 返回值为一个File数组 我估计这里就应该是打印该数组的首地址" + File.listRoots()); </span>
10)对于最后一次修改时间的获得和修改
<span style="">System.out.println( subFile[i] + "用lastModified()函数返回文件或目录最后一次修改的时间" + (new java.util.Date(subFile[i].lastModified())));
//修改最后一次修改时间
subFile[0].setLastModified(System.currentTimeMillis());</span>
<span style="">//获得当前时间
System.out.println(subFile[i] +"用setlastModified()函数修改时间后返回文件或目录最后一次修改的时间" + (new java.util.Date(subFile[i].lastModified())));</span>
11)修改文件名,删除文件
<span style="">//修改文件名 可以跨目录
if(temFile.renameTo(new File("D:/","NewNameFile")))
System.out.println("重命名成功啦 快去看看");
System.out.println(temFile.getAbsolutePath());</span>
<span style="">//删除文件
//如果此路径名表示一个目录,则该目录必须为空才能删除
temFile.delete();
//在虚拟机终止时删除
temFile.deleteOnExit();</span>
结束语:通过File对象对文件或者是文件夹的操作基本上就是上面的那些啦。
相关文章推荐
- [Java 12 IO] File 类 的几个基本操作
- File文件基本操作之一: java 复制文件夹及其下面的子文件夹
- File文件基本操作之二:java 替换指定文件中的指定内容
- Java基础——对象序列化+管道流+RandomAccessFile+操作基本数据类型的DataStream等
- Java中File的基本操作
- 输入输出流(IO)—文件字节流(FileInputStream & FileOutputStream)的基本操作及运用
- java File的基本操作实例
- [Java 12 IO] File 类 的几个基本操作
- 基本文件操作:NSFileHandle的用法
- File的基本实用操作
- File类的基本操作之读出文件路径
- C#基础(19)——path、File类的基本操作
- File文件基本操作之三: java 读取properties文件属性
- Directory类(DirectoryInfo类)和Path类与File类的基本方法与操作以及实例
- File 基本操作
- IO流与File对象基本操作
- FileInfo类的基本操作
- File类的基本操作之读出全部文件夹路径
- 02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri
- java RandomAccessFile类文件基本操作