Java IO操作之File类简单操作

Java IO操作之File

2009-07-28 09:45

File

一个File类的对象,表示了磁盘上的文件或目录。
File
类提供了与平台无关的方法来对磁盘上的文件或目录进行操作。
------------
Java API:
------------
java.io
File
java.lang.Object
java.io.File
所有已实现的接口:
Serializable, Comparable<File>
public class File
extends Object
implements Serializable, Comparable<File>

文件和目录路径名的抽象表示形式。

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:
一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"" 表示 Microsoft Windows UNC 路径名,以及
零个或更多字符串名称 的序列。
除了最后一个,抽象路径名中的每个名称代表一个目录;最后一个名称既可以代表目录,也可以代表文件。空的 抽象路径名没有前缀和名称序列。

路径名字符串与抽象路径名之间的转换与系统有关。将抽象路径名转换为路径名字符串时,每个名称与下一个名称之间由单个默认分隔符字符 隔开。默认名称分隔符由系统属性 file.separator 定义,也可以从此类的公共静态字段 separator separatorChar 中得到。将路径名字符串转换为抽象路径名时,可以使用默认名称分隔符或者受基础系统支持的其他任何名称分隔符来分隔其中的名称。

无论是抽象路径名还是字符串路径名,都可以是绝对 路径名或相对 路径名。绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件。相反,相对路径名必须使用来自其他路径名的信息进行解释。默认情况下,java.io 包中的类总是根据当前用户目录来分析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。

前缀的概念用于处理 UNIX 平台的根目录,以及 Microsoft Windows 平台上的盘符、根目录和 UNC 路径名,如下所示:
对于 UNIX 平台,绝对路径名的前缀始终是 "/"。相对路径名没有前缀。表示根目录的绝对路径名的前缀为 "/" 并且没有名称序列。
对于 Microsoft Windows 平台,包含盘符的路径名的前缀由驱动器名和一个 ":" 组成:如果路径名是绝对路径名,后面可能跟着 "//"UNC 路径名的前缀是 "";主机名和共享名是名称序列中的前两个名称。没有指定驱动器的相对路径名无前缀。

File 类的实例是不可变的;也就是说,一旦创建,File 对象表示的抽象路径名将永不改变。


从以下版本开始:
JDK1.0
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
构造方法摘要
File(File parent, String child)
         
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
         
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File(String parent, String child)
         
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
         
通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

1、创建文件和文件夹
------------
Java API:
------------
createNewFile
public boolean createNewFile()
                      throws IOException
当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。检查文件是否存在,如果不存在则创建该文件,这是单个操作,对于其他所有可能影响该文件的文件系统活动来说,该操作是原子的。

注:此方法不应 用于文件锁定,因为所得到的协议可能无法可靠地工作。应该使用 FileLock 机制替代。

返回:
如果指定的文件不存在并成功地创建,则返回 true;如果指定的文件已经存在,则返回 false
抛出:
IOException -
如果发生 I/O 错误
SecurityException -
如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String) 方法拒绝对文件进行写入访问
从以下版本开始:
1.2
-------------------------------------------------------------------------------
Demo1: FileDemo.java
创建一个文件,简单起见,异常由JVM处理
-------------------------------------------------------------------------------

1 import java.io.File;
2
3 public class FileDemo {
4
5 public static void main(String[] args) throws Exception {
6    File f = new File("1.txt");
7    f.createNewFile();
8 }
9
10 }
11

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------

------------
Java API:
------------
mkdir
public boolean mkdir()
创建此抽象路径名指定的目录。

返回:
当且仅当已创建目录时,返回 true;否则返回 false
抛出:
SecurityException -
如果存在安全管理器,且其 SecurityManager.checkWrite(java.lang.String) 方法不允许创建指定的目录

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo2
:在当前文件夹中创建一个文件夹test
-------------------------------------------------------------------------------

1 import java.io.File;
2
3 public class FileDemo {
4
5 public static void main(String[] args) throws Exception {
6    File f = new File("test");
7    f.mkdir();
8 }
9 }
10

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo3
:创建一个根目录下的文件夹test
方法名:mkdir()
注意:'/'要使用转义字符'//'来代替
-------------------------------------------------------------------------------

1 import java.io.File;
2
3 public class FileDemo {
4
5 public static void main(String[] args) throws Exception {
6    File f = new File("c://test");
7    f.mkdir();
8 }
9 }
10

------------
Java API:
------------
mkdirs
public boolean mkdirs()
创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。注意,如果此操作失败,可能已成功创建了一些必需的父目录。

返回:
当且仅当已创建该目录以及所有必需的父目录时,返回 true;否则返回 false
抛出:
SecurityException -
如果存在安全管理器,且其 SecurityManager.checkRead(java.lang.String) 方法不允许验证指定目录和所有必需的父目录是否存在;或者 SecurityManager.checkWrite(java.lang.String) 方法不允许创建指定的目录和所有必需的父目录
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo4
:创建一个根目录下的文件夹test
方法名:mkdirs()
-------------------------------------------------------------------------------

1 import java.io.File;
2
3 public class FileDemo {
4
5 public static void main(String[] args) throws Exception {
6    File f = new File("c://test//test//test");
7    f.mkdir();
8 }
9
10 }

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo5
:在当前目录下创建多级子目录(注意格式,先文件名,再'//'
   
如果是(//test//test)格式,则会在当前文件所在的盘符的根目录下创建目录
-------------------------------------------------------------------------------

1 import java.io.File;
2
3 public class FileDemo {
4
5 public static void main(String[] args) throws Exception {
6    File f = new File("c://test//test//test");
7    f.mkdir();
8 }
9
10 }
11
12

-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Demo6
:直接在某特定目录下新建文件
-------------------------------------------------------------------------------

1 import java.io.File;
2
3 public class FileDemo {
4
5 public static void main(String[] args) throws Exception {
6    File f = new File("c://test//test//1.txt");
7    f.createNewFile();
8 }
9
10 }
11

-------------------------------------------------------------------------------

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值