Java基础回顾 : 文件类中的一些常用的方法
2016-05-28 00:58
676 查看
File 类提供的是一个与平台无关的文件操作类,操作的是文件的本身。在File 类执行操作的时候一定要设置一个操作的路径;
★ . 在File 类里面提供了以下的构造方法,可以设置路径:
· 设置一个完整路径:WEB 开发之中比较常见
public File(String pathname)
· 设置父路径以及操作的文件名称:在Android 开发里面比较常见;
public File(File parent, String child)
★ . 如果要想进行文件的操作,可以使用如下的几个方法完成:
· 创建一个新的文件:
public boolean createNewFile() throws IOException
· 删除文件:
public boolean delete()
· 判断文件是否存在:
public boolean exists()
文件夹也同样可以。
eg : 一个简单的文件操作示例
第二个问题:关于操作系统的路径分隔符问题。在windows 之中使用的路径分割符:\,而在linux下正好相反:/,在正常情况下,Java 程序都会在windows 下开发,而真正部署的时候会将其部署到linux或其他的操作系统上,所以如果现在将路径的分割符写固定了,那么在项目发布时就有可能出现错误。
为了解决这样的问题,在Java 里面提供了一个路径分割符的概念:
public static final String separator
正常来讲final修饰的属性应该是大写字母,但是这些是Java 最早开发时所带来的遗留问题。
★ . 以上的代码是直接在根路径下创建的文件,那么如果说现在创建的文件有目录呢?
如果要创建目录可以使用如下的方法:
public boolean mkdirs()
有些时候有可能目录还存在着呢,那么在进行目录的创建之前,至少需要做一个判断,判断目录是否存在,使用如下方法:
public File getParentFile()
表示取得当前文件或文件夹的父目录。
eg :
★ . 那么除了进行文件或文件夹的创建之外,也可以利用 File 类取得文件夹之中的内容。
取得文件夹的内容
· 判断路径是否是文件夹:
public boolean isDirectory()
· 列出目录中的全部内容
public File[] listFiles()
eg :
★ . 除了以上的基本操作之外,在File 类里面也定义了一些与文件本身信息有关的操作方法:
· 取得文件大小:
public long length()
· 取得文件的最后一次修改日期:
public long lastModified()
eg :
★ . 在File 类里面提供了以下的构造方法,可以设置路径:
· 设置一个完整路径:WEB 开发之中比较常见
public File(String pathname)
· 设置父路径以及操作的文件名称:在Android 开发里面比较常见;
public File(File parent, String child)
★ . 如果要想进行文件的操作,可以使用如下的几个方法完成:
· 创建一个新的文件:
public boolean createNewFile() throws IOException
· 删除文件:
public boolean delete()
· 判断文件是否存在:
public boolean exists()
文件夹也同样可以。
eg : 一个简单的文件操作示例
package example; import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; public class TestDemo { public static void main(String[] args) throws Exception { fun1(); } /** * 创建文件和删除文件 * @throws Exception */ public static void fun1() throws Exception { File file = new File("e:\\test.txt"); if (!file.exists()) { System.out.println(file.createNewFile()); } else { file.delete(); } } }第一个问题:发现操作中出现了延迟,因为JAVA 的文件操作要通过JVM 间接进行,所以如果文件操作的过快有可能会出现延迟;
第二个问题:关于操作系统的路径分隔符问题。在windows 之中使用的路径分割符:\,而在linux下正好相反:/,在正常情况下,Java 程序都会在windows 下开发,而真正部署的时候会将其部署到linux或其他的操作系统上,所以如果现在将路径的分割符写固定了,那么在项目发布时就有可能出现错误。
为了解决这样的问题,在Java 里面提供了一个路径分割符的概念:
public static final String separator
正常来讲final修饰的属性应该是大写字母,但是这些是Java 最早开发时所带来的遗留问题。
★ . 以上的代码是直接在根路径下创建的文件,那么如果说现在创建的文件有目录呢?
如果要创建目录可以使用如下的方法:
public boolean mkdirs()
有些时候有可能目录还存在着呢,那么在进行目录的创建之前,至少需要做一个判断,判断目录是否存在,使用如下方法:
public File getParentFile()
表示取得当前文件或文件夹的父目录。
eg :
/** * 创建和删除带有父路径的文件 * @throws Exception */ public static void fun2() throws Exception { File file = new File("e:" + File.separator + "demo" + File.separator + "example" + File.separator + "test.txt"); if(!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } if (!file.exists()) { System.out.println(file.createNewFile()); } else { file.delete(); } }
★ . 那么除了进行文件或文件夹的创建之外,也可以利用 File 类取得文件夹之中的内容。
取得文件夹的内容
· 判断路径是否是文件夹:
public boolean isDirectory()
· 列出目录中的全部内容
public File[] listFiles()
eg :
/** * 列出文件夹下的所有子文件夹或文件 * @throws Exception */ public static void fun3() throws Exception { File file = new File("d:"+File.separator+"Program Files"); if(file.exists() && file.isDirectory()) { File files[] = file.listFiles(); for(File f : files){ System.out.println(f); } } }
★ . 除了以上的基本操作之外,在File 类里面也定义了一些与文件本身信息有关的操作方法:
· 取得文件大小:
public long length()
· 取得文件的最后一次修改日期:
public long lastModified()
eg :
/** * 获取文件的大小和最后修改时间 * @throws Exception */ public static void fun4() throws Exception { File file = new File("d:" + File.separator + "cat.jpg" ); //获取文件大小 long size = file.length() / (long)1024; System.out.println(size + "KB"); //获取最后修改时间 long time = file.lastModified(); SimpleDateFormat slf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); String t = slf.format(new Date(time)); System.out.println(t); }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树