File类的概述和构造方法

构造方法:

  • File(String pathname):根据一个路径得到File对象
  • File(String parent,String child):根据一个目录和一个子文件/目录 得到File对象
  • File(File parent,String child):根据一个父File对象和一个子文件/目录得到File对象

File更应该叫做一个路径,文件 路径  或者  文件夹  路径

File是指文件或者目录路径名的抽象表示形式

创建功能:

  • public boolean createNewFile():创建文件,如果存在这样的文件,就不会创建了
  • public boolean mkdir():创建一个文件夹(目录),如果存在这样的文件夹就不再创建了
  • public boolean mkdir():迭代着创建文件夹,多层文件夹嵌套创建

重名名和删除功能:

  • public boolean renameTo(File dest):把文件重名为指定的文件路径(和Linux一样,重名名其实就是剪贴粘贴)
  • public boolean delete():删除文件或者文件夹(这种删除是不经过回收站的)

判断功能:

  • public boolean isDirectory():判断是否是空目录
  • public boolean isFile():判断是否是文件
  • public boolean exists():判断是否存在
  • public boolean canRead():判断是否可读
  • public boolean canWrite():判断是否可写
  • public boolean isHidden():判断是否隐藏

获取功能:

  • public String getAbsolutePath():获取绝对路径
  • public String getPath():获取路径
  • public String getName():获取名称
  • public long length():获取长度(文件的字节数)
  • public long lastModified():获取最后一次的修改时间,毫秒值
  • public String[] list():获取指定目录下的所有文件或者文件夹的名称 数组
  • public File[] listFile():获取指定目录下的所有文件或者文件夹的File数组

我们自己实现一个文件名过滤器

package null08012133;

import java.io.File;

public class Demo01 {

    public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:/");
File[] fileList = file.listFiles();
for(File fileObj:fileList){
if(fileObj.isFile()&&fileObj.getName().endsWith(".sys")){
System.out.println(fileObj.getName());
}
} } }

使用内置的一些方法进行判断

package null08012133;

import java.io.File;
import java.io.FilenameFilter; public class Demo02 { public static void main(String[] args){
File file = new File("C:/");
String[] fileNames = file.list(new FilenameFilter(){ @Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
File f = new File(dir,name);
return f.isFile()&&name.endsWith(".sys");
}
});
for(String fileName:fileNames){
System.out.println(fileName);
}
} }

Java学习之路(十一):IO流<前戏>的更多相关文章

  1. java学习之路--I/O流

      java基础学习总结——流 一.JAVA流式输入/输出原理

  2. 新篇章之我的java学习之路下

    昨天写下了人生的第一篇博客,今天接着写我的java学习之路有关开发及框架的学习过程. 想要学好java语言,只学习一些java的基本语法对实际开发中的用处还是不大的,所以我们还要掌握一些有关javaW ...

  3. java学习之路之javaSE基础2

    java学习之路之javaSE基础2 所有的代码都是引用他人写的. 1.逻辑运算符 //&,|,^,! //int x = 10; //5 < x < 15 //x > 5 ...

  4. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解)* A:什么是计算机?计算机在生活中的应用 ...

  5. Java学习之路(转)

    Java学习之路(书籍推荐)   一.基础类 1.<Thinking in java>(阅读2遍),入门第一位是建立正确的概念 2.<Core Java>这本书更贴近实践,更多 ...

  6. JAVA学习之路与大家分享

    这是我四年以前总结的JAVA学习之路,希望对初学者或想从事JAVA开发的人有帮助. 本人是软件工程专业出身,先后学过C.C++.JAVA.VB.delphi等等开发语言以及网络相关管理技术.哎,好久不 ...

  7. Java 学习之路 -- day00

    Java 学习之路 -- day00 Typora 快捷键操作 标题:#+空格 2. *斜体* 3. **加粗** 4. **斜体加粗*** 5. ~~删除线~~ 6. > 引用 7. ···分 ...

  8. Java学习之路(十二):IO流<二>

    字符流 字符流是可以直接读写字符的IO流 使用字符流从文件中读取字符的时候,需要先读取到字节数据,让后在转换为字符 使用字符流向文件中写入字符时,需要把字符转为字节在写入文件 Reader和Write ...

  9. Java学习之路(十二):IO流

    IO流的概述及其分类 IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流(读写数据)     输出流(写数据) 流按操作 ...

随机推荐

  1. 【转载】不得不知道的Python字符串编码相关的知识

    原文地址:http://www.cnblogs.com/Xjng/p/5093905.html 开发经常会遇到各种字符串编码的问题,例如报错SyntaxError: Non-ASCII charact ...

  2. gj10 python socket编程

    10.1 HTTP.Socket.TCP这几个概念 五层网络模型 socket 不属于任何协议,是一个API,通过socket 可以和传输层的打交道,然后在之上可以实现自己的功能和协议 10.2 cl ...

  3. public static void main(String[] args)说明

    /*public static void main(String[] args) 主函数特殊之处:1,格式是固定的.2,被jvm所识别和调用. public:因为权限必须是最大的.static:不需要 ...

  4. Java解决高并发方案(帮助你我他)

           一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单.随着互联网业务的不断丰富,网站 ...

  5. day15(mysql 的多表查询,事务)

    mysql之多表查询 1.合并结果集 作用:合并结果集就是把两个select语句查询的结果连接到一起! /*创建表t1*/ CREATE TABLE t1( a INT PRIMARY KEY , b ...

  6. (最短路) Heavy Transportation --POJ--1797

    链接: http://poj.org/problem?id=1797 Heavy Transportation Time Limit: 3000MS   Memory Limit: 30000K To ...

  7. 机器学习---K最近邻(k-Nearest Neighbour,KNN)分类算法

    K最近邻(k-Nearest Neighbour,KNN)分类算法 1.K最近邻(k-Nearest Neighbour,KNN) K最近邻(k-Nearest Neighbour,KNN)分类算法, ...

  8. [jquery-ajax] jquery ajax 三种情况对比

    <button class="btn1">async:false</button> <button class="btn2"> ...

  9. Oracle sql 优化の常用方式

    1.不要用 '*' 代替所有列名,特别是字段比较多的情况下 使用select * 可以列出某个表的所有列名,但是这样的写法对于Oracle来说会存在动态解析问题.Oracle系统通过查询数据字典将 ' ...

  10. Delphi 动态链接库的动态和静态调用 (仔细读一下)

    http://blog.163.com/bxf_0011/blog/static/35420330200952075114318/ 为了让人能快速的理解 静态调用.动态调用,现在做一个函数封装在一个D ...