IO操作-File

来源:互联网 发布:苏宁剑客软件 编辑:程序博客网 时间:2024/06/06 10:55

IO学习

学习法则:当子类复写父类方法时,会根据实例化子类的不同,同一方法可以完成不同的功能。

File类

File类是在整个java.io包之中唯一一个与文件本身操作有关的类,文件本身操作指的是文件的创建、删除等,但是如果要进行File类操作那么必须设置好要操作的文件或文件夹的路径,使用如下构造方法。

构造方法
public File(String pathname),传入完整的路径,WEB开发此方式比较好用
public File(File parent, String child),传入父路径和子路径。

范例:基本的文件操作

  • 创建新的文件

    public boolean createFile() throws IOException;

  • 删除文件
    public boolean delete();
  • 判断文件是否存在

    public boolean exists();

    public class TestDemo{    public static void main(String[] args) throws Exception {        File file = new File("D:\\demo.txt");        if(file.exists()){            file.delete();        } else{            file.createFile();        }    }

    本程序依然存在如下几个问题:

  • Java的最大特征是可移植性,分隔符不同,一般在windows开发,最后部署在Linux之中;

    public static final String separator

  • 在程序执行完之后文件并不会立刻删除或者是创建,存在有一定的延迟,因为Java程序是通过JVM间接调用系统函数实现的文件操作。
  • 如果在进行文件创建的时候,如果有目录,则需要先创建文件目录之后才可以创建文件。
    • 找到父路径:
      public File getParentFile();
    • 创建目录:
      public boolean mkdirs();

除了以上的一些文件操作,还有一些取得文件信息的方法。

  • 判断路径是否是文件

    public boolean isFile();

  • 判断路径是否是文件夹
    public boolean isDirectory();
  • 最后一次修改日期

    public long lastModified();

    new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS")      .format(new Date(file.lastModified()));
  • 取得文件大小

    public long length();

  • 修改文件名称
    public boolean renameTo(File dest);

列出目录中的所有文件内容
  • 列出目录内容

    public File[] listFiles();

    File file = new File("D:" + File.separator + "testjava");  if(file.exists() && file.isDirectory()) {    File[] result = file.listFiles();    for(int x = 0; x < result.length; x++) {        System.out.println(result[x]);    }}

    但是此时列出的只是当前目录的文件内容。

范例:列出一个目录之中的所有文件(包括所有子目录的文件)

public static void print(File file) {    if(file.exists() && file.isDirectory()) {        File[] result = file.listFiles();        if(result != null) { //有些文件我们并没有权限打开            for(int x = 0; x < result.length; x++) {                print(result);            }        }    }    System.out.println(file);}
0 0
原创粉丝点击