不同的操作系统对于文件系统路径的设置各有差别。例如在Windows中,一个路径的表示法可能是:
    "C:\\Workspace\\CH14\\"

而在Linux下的路径设置可能会像是:
    "/home/justin/workspace/ch14"

Windows的路径指定是使用UNC (Universal Naming Convention)路径名,以\\开始表示硬盘根目录。如果没有以\\开始表示相对于当前工作目录的路径,C是可选的硬盘指定,后面跟随着:字符。而 UNIX-Like系统没有Windows系统的C、D、E这样的硬盘驱动器概念,UNIX-Like系统的路径指定以/开始表示从根目录开始的绝对路径,不以/开始表示相对于当前工作目录的路径。

在程序中设置路径时会有系统相依性的问题, java.io.File类提供一个抽象的、与系统独立的路径表示。给它一个路径字符串,它会将其转换为与系统无关的抽象路径表示,这个路径可以指向一个文件、目录或是URI(Uniform Resource Identifier)。

一个File的实例被建立时,它就不能再被改变内容。File实例除了用作一个文件或目录的抽象表示之外,它还提供了不少相关操作方法:可以用它来对文件系统作一些查询与设置的动作。要注意的是,不管是文件还是目录,在Java中都是以File的实例来表示。

范例14.1是一个设置与操作File实例的简单示范,可以指定查询某个目录下的所有文件与目录名称。

范例14.1  FileDemo.java
    package onlyfun.caterpillar;
    import java.io.*;
    import java.util.*;
    public class FileDemo {
        public static void main(String[] args) {
            try {
                File file = new File(args[0]);
                if(file.isFile()) { // 是否为文件
                    System.out.println(args[0] + " 文件");
                    System.out.print(
                          file.canRead() ? "可读 " : "不可读 ");
                    System.out.print(
                          file.canWrite() ? "可写 " : "不可写 ");
                    System.out.println(
                          file.length() + "字节");
                }
                else {
                    // 列出所有的文件及目录
                    File[] files = file.listFiles();
                    ArrayList<File> fileList =
                                        new ArrayList<File>();
                    for(int i = 0; i < files.length; i++) {
                        // 先列出目录

if(files[i].isDirectory()) { //是否为目录
                            // 取得路径名
                            System.out.println("[" +
                                    files[i].getPath() + "]");
                        }
                        else {
                            // 文件先存入fileList,待会再列出
                            fileList.add(files[i]);
                        }
                    }
                    // 列出文件
                    for(File f: fileList) {
                        System.out.println(f.toString());
                    }
                    System.out.println();
                }
            }
            catch(ArrayIndexOutOfBoundsException e) {
                System.out.println(
                            "using: java FileDemo pathname");
            }
        }
    }

执行结果:
    java onlyfun.caterpillar.FileDemo C:\
    [C:\WINDOWS]
    [C:\workspace]
    [C:\Documents and Settings]
    [C:\Program Files]
    [C:\System Volume Information]
    C:\pagefile.sys
    C:\A3N_A3L.10
    C:\bootfont.bin
    C:\ntldr
    ...略

这里先简单地介绍一下File类。File类主要是文件的抽象代表,若要作文件输出/输入,必须配合其他相关类来使用。接下来会配合各小节的内容并适时地使用File类。

推荐初学者一个编程技术的学习网站,96堆栈 软件编程网,http://www.96dz.com,里面有C++视频教程、C#视频教程、Java视频教程下

载,还有C\C++、Java、C# .NET等编程技术文摘,包括目前主流的Linux编程与Web编程等学习资料视频教程下载。

转载于:https://www.cnblogs.com/Javalove/archive/2011/02/24/1964094.html

Java JDK 学习笔记:File类相关推荐

  1. Java学习笔记----File类与IO流

    第五章:File类与IO流 第一节:File类 1.1 概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作 Java把电脑中的文件和文件夹(目录) ...

  2. java学习笔记(file类):

    1.file类: 1)public boolean createNewFile() throws IOException:创建文件,如果文件不存在,就会自动创建,创建了,返回true2)public ...

  3. java集合学习笔记 ---Collections类对集合的处理

    2019独角兽企业重金招聘Python工程师标准>>> 包名:java.util.Collections Collections是个类,不是接口 有以下方法,部分列举 1.对List ...

  4. JAVA学习笔记(类的学习)

    JAVA学习笔记(类的学习) 类声明和类体 构造方法和对象创建 对象的引用和实体 成员变量 方法 方法重载 关键字this 包 import语句 访问权限 对象数组 反编译和文档生成器 JAR文件 1 ...

  5. 尚学堂JAVA基础学习笔记_2/2

    尚学堂JAVA基础学习笔记_2/2 文章目录 尚学堂JAVA基础学习笔记_2/2 写在前面 第10章 IO技术 1. IO入门 2. IO的API 3. 装饰流 4. IO实战 5. CommonsI ...

  6. java mail 学习笔记

    JAVA MAIL 学习 笔记 电子邮件协议的简介 SMTP 简单邮件传输 SMTP是Simple Mail Transfer Protocol的简称,即简单邮件传输协议.该协议定义了邮件客户端软件和 ...

  7. ASM学习笔记2 - 类的创建和修改 —— ClassWriter的综合应用

    ASM学习笔记2 - 类的创建和修改 -- ClassWriter的综合应用 上回我们说到,通过使用ClassVisitor和ClassReader,我们能够分析已经存在的类.这一节中,我们将使用Cl ...

  8. 尚学堂JAVA高级学习笔记_1/2

    尚学堂JAVA高级学习笔记 文章目录 尚学堂JAVA高级学习笔记 写在前面 第1章 手写webserver 1. 灵魂反射 2. 高效解析xml 3. 解析webxml 4. 反射webxml 5. ...

  9. 黑马程序员Java教程学习笔记(五)

    学习视频:https://www.bilibili.com/video/BV1Cv411372m 如侵权,请私信联系本人删除 文章目录 黑马程序员Java教程学习笔记(五) 日期时间:Date.Sim ...

最新文章

  1. 存储过程中将sql语句结果赋值给变量
  2. javafx 安装_JDK安装教程及环境配置
  3. 验证网站地址是否有效
  4. Python中必备知识点:对字符编码的基本操作
  5. windows安装 Chocolatey
  6. Solaris 的防火墙ipfilter设置
  7. win10怎么重装系统虚拟机win7
  8. 没有编辑器时,使用echo更换源
  9. 解决办法:undefined reference to symbol 'pthread_mutexattr_settype@@GLIBC_2.2.5'
  10. 如何创建C语言的项目
  11. MAYA安装包+安装教程
  12. 雨林木风SP3YN9.9 装机版09年09月更新(终结版)
  13. Qt制作局域网即时通讯软件
  14. 谈谈我对网站的个人规划
  15. ckfinder java 配置_JAVA里使用CKEditor和CKFinder的配置
  16. 40款用于简洁网页设计的光滑英文字体【上】
  17. 序言页码(纯思维题)
  18. Python OpenCV --Drowsiness Detector 睡意检测--项目记录
  19. 小程序源码:喝酒娱乐小游戏助力神器微信小程序源码下载多种游戏选择玩法多种
  20. 配置静态NAT和配置动态NAT

热门文章

  1. kali linux升级火狐,Kali安装最新firefox卸载旧的firefox
  2. concat拼接的坑 mysql_DNSlog注入踩坑记录:
  3. java web配置dll文件_JavaWeb项目中dll文件动态加载方法解析(详细步骤)
  4. Linux的文本字段统计方法
  5. fork+exit+php,php实现简单的守护进程创建、开启与关闭操作
  6. [转]深夜无人的街道
  7. mysql查询优化技巧
  8. Android 将Openfire中的MUC改造成类似QQ群一样的永久群
  9. Best Practices for Web Apps
  10. [转]C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏