File类
存储在变量,数组和对象中的数据是暂时的,当程序终止时他们就会丢失.为了能够永久的保存程序中创建的数据,需要将他们存储到硬盘或光盘的文件中.这些文件可以移动,传送,亦可以被其他程序使用.由于数据存储在文件中,所以我们需要学习一个和文件有密切关系的类,叫做File类,将要掌握获取文件的属性以及删除和重命名文件.最终如何向文件中写入数据和从文件中读取数据.
那么File类关心的是在磁盘上文件的存储.
File类描述的是一个文件或文件夹。(文件夹也可以称为目录)
该类的出现是对文件系统的中的文件以及文件夹进行对象的封装。可以通过对象的思想来操作文件以及文件夹。可以用面向对象的处理问题,通过该对象的方法,可以得到文件或文件夹的信息方便了对文件与文件夹的属性信息进行操作。
文件包含很多的信息:如文件名、创建修改时间、大小、可读可写属性等。
路径分隔符
在windows机器上 的目录分隔符是 \ ,在linux机器上的目录分隔符是/ 。
注意: 在windows上面\ 与 / 都可以使用作为目录分隔符。 而且,如果写/ 的时候只需要写一个即可。
java的File类中提供了一个与系统有关的路径分隔符的常量:static String separator 与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
决定路径和相对路径
对于UNIX平台,绝对路径名的前缀是"/"。相对路径名没有前缀。
对于Windows平台,绝对路径名的前缀由驱动器号和一个":"组成,例"c:\\..."。相对路径没有盘符前缀。
相对路径:
相对路径是指相对于某位置的路径,是指相对于当前目录。
在执行Java程序时,相对路径为执行java命令时当前所在的目录。
. 代表当前路径
.. 代表上一级路径
注意: 如果程序当前所在的路径与资源文件不是在同一个盘下面,是没法写相对路径 的。
File类常用方法
构造方法:
File(String pathname) 通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child) 根据
parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(File parent, String child) 根据
parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
代码示例:
import java.io.File;
public class DemoFile {
//构造方法
public static void main(String[] args) {
//根据全路径来创建File对象
File file = new File("E:\\nick.txt");
System.out.println("是否存在文件:"+file.exists());
//根据父路径和子路径字符串创建file
File file2 = new File("E:\\","nick.txt");
System.out.println("是否存在文件:"+file2.exists());
//根据父File对象和子路径字符串创建File对象
File prarentFile = new File("E:\\");
File file3 = new File(prarentFile, "nick.txt");
System.out.println("是否存在文件:"+file3.exists());
}
}
相对路径和决定路径测试:
import java.io.File;
public class DemoFile {
//相对路径和决定路径
public static void main(String[] args) {
File file= new File(".");
System.out.println("当前路径:"+file.getAbsolutePath());
File file2 = new File("..\\..\\nick.txt");
System.out.println("是否存在文件:"+file2.exists());
}
}
创建文件或文件夹的常用方法:
boolean createNewFile() 当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
boolean mkdir() 创建此抽象路径名指定的目录。
boolean mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
boolean renameTo(File dest) 重新命名此抽象路径名表示的文件。如果dest文件路径和源文件路径一致,为重命名。如果不一致,则为剪切。
代码示例:
import java.io.File;
import java.io.IOException; public class DemoFile {
//创建
public static void main(String[] args) throws IOException {
//创建文件
File file = new File("E:\\nick.txt");
boolean isSuccess = file.createNewFile(); //抛出异常
System.out.println("创建文件是否成功:"+isSuccess);
//创建文件夹
File file2 = new File("E:\\aaaaa");
boolean isSuccess2 = file2.mkdir();
System.out.println("创建文件夹是否成功:"+isSuccess2);
//创建父子文件夹
File file3 = new File("E:\\aaaaaa\\bbbb");
boolean isSuccess3 = file3.mkdirs();
System.out.println("创建父子文件夹是否成功:"+isSuccess3);
//重命名或剪切文件夹
boolean isRename = file.renameTo(new File("E:\\aa.txt"));
System.out.println("重命名是否成功 :"+isRename);
boolean isRename2 = file.renameTo(new File("D:\\aa.txt"));
System.out.println("剪切是否成功 :"+isRename2); }
}
删除文件或者文件夹:
boolean delete() 删除此抽象路径名表示的文件或目录。
void deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。
注意:删除文件夹时只能删除空文件夹。
代码示例:
import java.io.File;
import java.io.IOException; public class DemoFile {
public static void main(String[] args) {
//删除文件
File file = new File("D:\\aa.txt");
System.out.println("删除文件是否成功:"+file.delete());
//删除文件夹
File file2 = new File("E:\\aaaaaa\\bbbb");
System.out.println("删除文件夹是否成功:"+file2.delete());
File file3 = new File("E:\\aaaaaa");
file3.deleteOnExit();
System.out.println("程序正在执行");
}
}
判断:
boolean exists() 测试此抽象路径名表示的文件或目录是否存在。
boolean isFile() 测试此抽象路径名表示的文件是否是一个标准文件。
boolean isDirectory() 测试此抽象路径名表示的文件是否是一个目录。
boolean isHidden() 测试此抽象路径名指定的文件是否是一个隐藏文件。
boolean isAbsolute() 测试此抽象路径名是否为绝对路径名
获取:
String getName() 返回由此抽象路径名表示的文件或目录的名称。
String getPath() 将此抽象路径名转换为一个路径名字符串。
String getAbsoluteFile() 返回此抽象路径名的绝对路径名形式。
String getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
long length() 返回由此抽象路径名表示的文件的长度。
long lastModified() 返回此抽象路径名表示的文件最后一次被修改的时间。
代码示例:
import java.io.File;
import java.io.IOException; public class DemoFile {
public static void main(String[] args) {
//获取
File file = new File("E:\\nick.txt");
System.out.println("文件名:"+file.getName());
System.out.println("文件路径:"+file.getPath());
System.out.println("文件绝对路径:"+file.getAbsolutePath()); //如果file为相对路径,则绝对路径为当前路径+文件路径
System.out.println("文件父路径:"+file.getParent()); //除了文件名以外的路径
System.out.println("文件大小:"+file.length());
System.out.println("文件最后修改时间:"+file.lastModified());
}
}
文件夹相关操作方法:
static File[] listRoots() 列出可用的文件系统根。
String[] list() 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
String[] list(FilenameFilter filter) 返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter) 返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File实战:
1、指定一个文件夹,然后列出该文件夹下面所有java文件。
代码如下:
import java.io.File;
import java.io.FileFilter;
import java.io.IOException; class NickFileFilter implements FileFilter{ @Override
public boolean accept(File pathname) { return pathname.isFile() && pathname.getName().endsWith(".java");
} } public class DemoFile {
public static void main(String[] args) {
File file = new File("C:\\Users\\Nick\\Desktop\\nick");
File[] files = file.listFiles(new NickFileFilter());
for (File file2 : files) {
System.out.println(file2.getName());
}
}
}
2、指定一个文件夹,然后列出文件夹下面的所有子文件与文件夹,但是格式要如下:
文件夹:
文件夹1
文件夹2
…………
文件:
文件1
文件2
………………
代码示例如下:
public class DemoFile {
public static void main(String[] args) {
File file = new File("C:\\Users\\Nick\\Desktop\\nick");
File[] files = file.listFiles();
System.out.println("文件夹:");
for (File file2 : files) {
if (file2.isDirectory()) {
System.out.println(file2.getName());
}
}
System.out.println("文件:");
for (File file2 : files) {
if (file2.isFile()) {
System.out.println(file2.getName());
}
}
}
}
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类的对 ...
- 初学File类
对File类的基本方法的理解 今天刚开始学了File类 一开始看思想编程看得迷迷糊糊的,之后受不了了,直接去看API文档 归纳: File->java.util File类的主要方法: 构造方法 ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
随机推荐
- mvc 开发razor模式注意事项
1 情景为:mvc模式开发的.cshtml画面,里面有@if语句,if语句里面还有其他的代码,画面总是报错:if模块中没有对应的"}",什么问题 跟踪了之后,判定cs语句没问题,那 ...
- CentOS添加新硬盘到新的分区(xfs/ext4) 或者添加新分区
CentOs添加新硬盘到新的分区(xfs/ext4) 添加新分区 转载请注明:http://www.cnblogs.com/juandx/p/5618162.html 这篇文章介绍怎么添加一块新的硬 ...
- Linux文件操作常用命令整理
收集.整理日常系统管理或维护当中的,常用到的一些关于文件操作的命令或需求,后续会慢慢补充.完善! 查看.生成指定目录的目录树结构? [root@DB-Server ~]#tree #当前目录 ...
- Oracle视图分类及各种操作讲解(超级好文)
目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1 创建简单视图 3.2 创建连接视图 3.2.1 连接视图定义 3.2.2 创建连接视图 3.2.3 ...
- 设置输入域(input/textarea)中文本光标的位置
以前记录了一篇 将光标定位于输入框最右侧的实现方式 ,实现光标定位在文本的最末.这种需求往往在修改现有的文本.有时可能还需要把光标定位在首位,或者中间某个位置,这就需要实现一个更通用的方法. 这个方法 ...
- FineReport层式报表解决大数据集展示问题攻略
本文以填报报表为例,通过分页的方式,来解决大数据集展示的问题. 实现的思想就是通过在SQL里筛选部分数据库数据,以达到浏览器可以合理的展示报表页面.(数据分段,语句我这采用的是MYSQL,如果要用其他 ...
- line-height1.5和line-height:150%的区别
一.区别 区别体现在子元素继承时,如下: 父元素设置line-height:1.5会直接继承给子元素,子元素根据自己的font-size再去计算子元素自己的line-height. 父元素设置line ...
- plain framework 1 版本更新 1.0.2 增加打包插件
由于个别因素,该框架的文档没有及时的更新到博客上,但是离线的文档已经完成.本次更新对框架来说显得比较重要,因为在文档的编写过程中经过再次的阅读代码修复了不少错误,最主要的是统一了整个框架的标准风格.对 ...
- 使用dedecms中常见错误提示及解决办法(一)
在使用 dedecms 做网站时,常常会遇到一些棘手的问题,比如:页面图片不显示(src 的地址不对)等等. 1. 更新网站时错误 问题:Call to a member function GetIn ...
- 第二届中国移动互联网测试大会PPT
第二届中国移动互联网测试大会PPT下载_360云盘 (提取密码:7799) 第二届中国移动互联网测试大会PPT下载_百度云盘 (提取密码: ws8m) 第二届中国移动互联网测试大会PPT下载_Goog ...