`
tuxq5721
  • 浏览: 34689 次
社区版块
存档分类
最新评论

JavaIO —— java.io.File类

 
阅读更多

java.io.File

常用常量

创建一个新的 File 对象

File类的缺点

 

常用常量

File.separator (分隔同一个路径字符串中的目录,例如C:\Program Files\Common Files)

         与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。

File.separatorChar

         与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.separator 值的第一个字符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\\'。

File.pathSeparator (分隔连续多个路径字符串的分隔符,例如java-cptest.jar;abc.jar  HelloWorld)

         与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar

File.pathSeparatorChar

         与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。

示例:

// 获取当前class所在的盘符文件目录, 假设为:D

File root = new File("/");

// 绝对路径为: D:/test.txt

File txtFile = new File(root, "test.txt");

 

创建一个新的File对象

File(File parent, String child)

         根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。

File(String parent, String child)

         根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。

File(String pathname)

         通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。

File(URI uri)

         通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

相对目录问题

         java.io 包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

 

File类的缺点

在Java SE 7的发布之前,java.io.File类是用于文件I / O机制,但它有几个缺点:

    • 很多方法失败了,但没有抛出异常,所以不可能获得有用的错误消息。例如,一个文件删除失败,程序会收到一个“删除失败”,但不知道是不是因为该文件不存在、用户没有权限,或者有一些其他的问题。
    • rename方法始终无法跨平台运行。
    • 没有真正支持符号链接(symbolic links)。
    • 无法获取更多需要的元数据,比如文件权限,文件所有者,以及其他安全属性。
    • 访问文件的元数据是低效的。
    • 许多方法并没有形成规模。如果需要列出大目录,可能会导致系统挂起。大目录也可能造成内存资源的问题,导致拒绝服务。
    • 在遍历文件树的时候,如果有循环性的符号链接,并不能编写可靠的代码作出适当的反应。

例如删除一个文件:

File file = new File("J:/test");

 

// 当删除失败后不知原因

boolean b = file.delete();

System.out.println(b);

 

// 删除失败会给出详细的异常信息

Path path = file.toPath();

try {

Files.delete(path);

} catch (IOException e) {

e.printStackTrace();

}

分享到:
评论

相关推荐

    安卓Android源码——文件管理器源码.zip

    1. **文件操作API**:Android系统提供了一系列的文件操作API,如`java.io.File`类用于创建、删除、重命名文件和目录,以及读取文件信息等。在文件管理器中,这些API会广泛使用。 2. **SQLite数据库**:为了实现文件...

    安卓Android源码——获取系统程序信息.zip

    通过`java.io`和`java.nio`类,可以读取文件内容并按行处理,解析出所需信息。 2. **查询`PackageManager`服务**:Android提供了`PackageManager`服务,通过它可以获取到系统中所有已安装的应用信息。使用`...

    java——IO流技术.pdf

    Java中的IO流主要位于`java.io`包中,该包包含了用于处理各种类型数据的流类。其中最重要的是五个类和三个接口: - **File**: 文件类,用于处理文件和目录的操作。 - **InputStream**: 字节输入流,用于从数据源...

    安卓Android源码——文件浏览返回路径.zip

    - `java.io.File` 类:在Android中,处理文件路径时,通常会用到`java.io.File`类。它可以用来创建、删除、重命名文件或目录,以及获取文件属性。例如,`getParentFile()`方法用于获取当前文件的父目录。 2. **...

    安卓Android源码——SdCard读写文件实例.zip

    首先,安卓系统为开发者提供了`java.io`和`android.os.Environment`等类来处理文件的读写操作。`java.io`包含了基本的I/O流类,如`FileInputStream`和`FileOutputStream`,用于读写文件;而`android.os.Environment`...

    安卓Android源码——MIUI文件管理器.zip

    在 Android 中,文件操作主要依赖于 `java.io` 和 `java.nio` 包中的类,如 File、InputStream、OutputStream、BufferedReader 等。MIUI 文件管理器会使用这些类实现文件的读写、创建、删除等操作。例如,复制文件...

    java面试——Redis面试专题.zip

    3. Redis持久化:为了防止数据丢失,Redis提供了RDB(快照)和AOF(Append Only File)两种持久化方式。RDB是在特定时间点生成数据的快照,AOF记录每次写操作到文件,重启时重新执行这些操作。 4. 主从复制:Redis...

    java基础——IO流及File-RandomAccessFile对象.docx

    ### Java基础——IO流及File、RandomAccessFile对象 #### IO流概述 在Java中,IO流主要用于处理设备上的数据,这里的“流”可以被理解为数据的流动过程,即数据从一个地方移动到另一个地方的过程。Java中的IO流通过...

    深入分析javaIO的工作机制.doc

    由于在大多数情况下,程序处理的数据是以字符形式存在的,因此Java提供了专门针对字符操作的IO接口——`Writer`和`Reader`。这两个接口及其子类主要用于解决字符数据的读写问题,同时也涉及到了字符编码的处理。 `...

    java程序——遍历目录文件

    首先,我们需要引入Java的`java.io`包,它包含了处理输入/输出流和文件操作的类。在这个程序中,我们主要会用到`File`类,它可以代表一个文件或目录,并提供了许多方法来获取文件属性。 ```java import java.io....

    java基础——————试题库

    这份“java基础——————试题库”资源旨在帮助学习者系统地复习和深入理解Java的基础知识,确保他们能够全方位地掌握这一强大的编程工具。下面将详细阐述Java的基础知识点。 1. **Java简介** - Java是由Sun ...

    java中的io详解.

    除了 File 类,Java IO 包中还有许多其他类,例如: * `InputStream`:抽象类,表示输入流 * `OutputStream`:抽象类,表示输出流 * `Reader`:抽象类,表示字符输入流 * `Writer`:抽象类,表示字符输出流 * `...

    IO——test

    标题中的"IO——test"显然指的是与输入/输出(Input/Output,简称IO)相关的测试。在计算机科学中,IO是程序与外部世界交互的重要方式,包括读取数据(输入)和写入数据(输出)。这可能是一个测试用例或者一个实验...

    【Java基础】-- FileUtils工具类常用方法(csdn)————程序.pdf

    在Java开发中,进行文件操作是必不可少的一部分,Apache Commons IO库提供了一个非常方便的工具类FileUtils,它对Java基础的IO操作进行了封装,使得文件处理更加简洁易用。在本文中,我们将详细介绍FileUtils工具类...

    java 使用IO流实现文件的复制

    import java.nio.file.StandardOpenOption; public class CopyFileWithNIO { public static void main(String[] args) { File source = new File("源文件路径"); File dest = new File("目标文件路径"); try ...

    java面试——深圳-银盛支付-Java中级.zip

    这份"java面试——深圳-银盛支付-Java中级.zip"压缩包文件很可能包含了针对Java中级开发者的一系列面试问题和解答,旨在帮助求职者提升自己的技能,并在面试中脱颖而出。下面,我们将深入探讨一些可能涵盖的Java中级...

    java实现播放音乐-JLayer(csdn)————程序.pdf

    import java.io.File; import java.io.FileInputStream; import javazoom.jl.player.Player; public class TestJlayer { public static void main(String[] args) throws Exception { File file = new File("src/...

Global site tag (gtag.js) - Google Analytics