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

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();

}

分享到:
评论

相关推荐

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

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

    java IO流学习笔记——(2)文件字符流&字节数组流

    java IO流学习笔记——(2)文件字符流&字节数组流 文件字符流FileReader&FileWriter FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 部分...

    Java开发详解.zip

    031201_【第12章:JAVA IO】_File类笔记.pdf 031202_【第12章:JAVA IO】_RandomAccessFile笔记.pdf 031203_【第12章:JAVA IO】_字节流与字符流笔记.pdf 031204_【第12章:JAVA IO】_字节-字符转换流笔记.pdf ...

    java-io-file类笔记

    尽管java.io定义的大多数类是实行流式操作的,File类不是。它直接处理文件和文件系统。也就是说,File类没有指定信息怎样从文件读取或向文件存储;它描述了文件本身的属性。File对象用来获取或处理与磁盘文件相关的...

    Java IO学习总结

    相对路径和绝对路径六.File的创建方法七.File类的删除方法八.File类的判断方法九.File的遍历方法IO一.分类二.字节流字节输出流字节输入流 File 一.概念 **java.io**  将字符串形式的路径,封装成File类,File类提供...

    基于Java实现的图像识别

    ImageComparerUI——基于Java语言实现的相似图像识别,基于直方图比较算法。 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Font...

    Spire.Pdf.zip 读取PDF文件中的信息

    import java.io.File; import java.io.UnsupportedEncodingException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; ...

    实验项目D、Java应用专题编程

    1、掌握File类的使用。 2、掌握字节流IO的操作。 3、掌握字符流IO的操作。 4、初步掌握随机流操作。 5、掌握Java数据库开发(JDBC操作)的准备。 6、掌握和理解导入包的类。 二、实验内容和主要步骤 ★专题:核心...

    Jsoup学习——Saz2Csv解析器

    3、Java File类操作:文件及文件夹的遍历(递归)、读写、复制,批量修改文件后缀名,csv格式文件的读写 4、Java FilenameFilter类的使用:遍历指定后缀名的文件 5、Java中字符串的处理:String类和StringBuffer类,...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    UMPAY——编码规范 日志规范 异常规范 网络 协议 TCP/IP HTTP hession file HTTPS 负载均衡 容器 JBOSS tomcat resin jetty 容灾 日志框架 开源框架 slf4j 框架实现 log4j logback commong ...

    JDK_API_1_6

    Serializable 类通过实现 java.io.Serializable 接口以启用其序列化功能。 类摘要 BufferedInputStream BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。 ...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    现在,Java EE 后端与 Flex 前端的接口已经定义好了,要完成 Java EE 后端的接口实现类非常容易,利用 Spring 强大的依赖注入功能,可以通过几行简单的代码完成: 清单 2. FlexServiceImpl class public class ...

    java经典面试2010集锦100题(不看你后悔)

    —————————————————————————————————————— 题目1: 下面不属于基本类型的是:c (选择1项) A) boolean B) long C) String D) byte 题目2:d 如下程序中: (1)public class ...

    Java高效读取大文件

    这篇文章是Baeldung (http://www.baeldung.com/) 上“Java——回归基础”系列教程的一部分。  2、在内存中读取  读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件...

    见面试官前,掏出来看看系列(三)之——JavaSE思维导图(持续更新中……)

    文章目录输入输出流(Java IO)字节流字符流File 类Socket(套字节)NIO(非阻塞 IO)容器Map面向对象技术重载和覆盖的区别面向对象的特征字符串和数组字符串创建与存储的机制”==“、equals()和hashCode有什么区别...

    java发送url请求进行文件的提交及后台struts2的action接收处理

    java发送url请求进行文件的提交以及后台struts2的action接收处理  1、java模拟表单方式发送url请求进行文件的提交  /**  *  * @作者 王建明  * @创建日期 2013-06-27 ...  File file = null;//

    jpivot学习总结.doc

    属性很多,并且是 schema 编写的关键,使用它可以构成一个结构树, Level 的先后顺序决定了 Level 在这棵树上的的位置,最顶层的 Level 位于树的第一级,依次类推。 Level 的属性如下: 属性名 含义 name 名称 ...

    micro-DB:自己动手写数据库-基于Java语言的简易关系型数据库

    关系型DB从0到1——基于Java语言的简易数据库 本项目初步练习实现一个基于Java语言的简易关系型数据库,用于学习关系型数据库(如Mysql)的设计理念,核心核心,基本算法。 涉及缓存,数据容量存储结构(B +树),锁...

    Android典型技术模块开发详解

    10.1.1 java.io包的方法 10.1.2 openFileInput和openFileOutput 10.1.3 从resource中的raw文件夹中读取文件 10.1.4 从asset中读取文件 10.2 SharedPreferences(键值数据存储) 10.3 SQLite语法 10.4 SQLite数据操作...

Global site tag (gtag.js) - Google Analytics