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

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章