1. File文件類java
java使用File類(java.io.File)表示操做系統上文件系統中的文件或目錄。換句話說,咱們可使用File操做硬盤上的文件或目錄進行建立或刪除。windows
File能夠描述文件或目錄的名字,大小等信息,但不能對文件的內容操做!File類的構造器都是有參的。數組
1)關於路徑的描述:不一樣的文件系統差別較大,Linux和Windows就不一樣!最好使用相對路徑,不要用絕對路徑。dom
2)「.」表明的路徑:當前目錄(項目所處的目錄),在eclipse_workspace/project_name下,File.separator:常量,目錄分隔符,推薦使用!根據系統自動識別用哪一種分割符,windows中爲/,Linux中爲\。eclipse
3)建立該對象並不意味着硬盤上對應路徑上就有該文件了,只是在內存中建立了該對象去表明路徑指定的文件。固然這個路徑對應的文件可能根本不存在!ide
4)createNewFile()中有throws聲明,要求強制捕獲異常!編碼
5)新建文件或目錄:spa
① boolean mkdir():只能在已有的目錄基礎上建立目錄。操作系統
② boolean mkdirs():會建立全部必要的父目錄(不存在的自動建立)並建立該目錄。3d
③ boolean createNewFile():建立一個空的新文件。
6)建立目錄中文件的兩種方式:
① 直接指定文件須要建立的位置,並調用createNewFile(),前提是目錄都要存在!
② 先建立一個File實例指定文件即將存放的目錄,若該目錄不存在,則建立全部不存在的目錄,再建立一個File實例,表明data.dat文件,建立是基於上一個表明目錄的File實例的。使用File(File dir,String fileName)構造方法建立File實例,而後再調用createNewFile():在dir所表明的目錄中表示fileName指定的文件。
案例17:
7)查看文件或目錄屬性經常使用方法
① long length():返回文件的長度。
② long lastModified():返回文件最後一次被修改的時間。
③ String getName():返回文件或目錄名。 ⑧String getPath():返回路徑字符串。
④ boolean exists():是否存在。 ⑨boolean isFile():是不是標準文件。
⑤ boolean isDirectory():是不是目錄。 ⑩boolean canRead():是否能夠讀取。
⑥ boolean canWrite():是否能夠寫入、修改。
⑦ File[] listFiles():獲取當親目錄的子項(文件或目錄)
案例18:
8)刪除一個文件:boolean delete():①直接寫文件名做爲路徑和"./data.dat"表明相同文件,也可直接寫目錄名,但要注意第2條。②刪除目錄時:要確保該目錄下沒有任何子項後才能夠將該目錄刪除,不然刪除失敗!
案例19:
2. RandomAccessFile隨機訪問文件流
能夠方便的讀寫文件內容,但只能一個字節一個字節(byte)的讀寫8位。
1)計算機的硬盤在保存數據時都是byte by byte的,字節埃着字節。
2)RandomAccessFile打開文件模式:rw:打開文件後可進行讀寫操做;r:打開文件後只讀。
3)RandomAccessFile是基於指針進行讀寫操做的,指針在哪裏就從哪裏讀寫。
① void seek(long pos)方法:從文件開頭到設置位置的指針偏移量,在該位置發生下一次讀寫操做。
② getFilePointer()方法:獲取指針當前位置,而seek(0)則將指針移動到文件開始的位置。
③ int skipBytes(int n)方法:嘗試跳過輸入的n個字節。
4)RandomAccessFile類的構造器都是有參的。
① RandomAccessFile構造方法1,參數是文件
RandomAccessFile raf=new RandomAccessFile(file,"rw");
② RandomAccessFile構造方法2,參數是字符串路徑(文件名)
RandomAccessFile raf=new RandomAccessFile("data.dat","rw");
5)讀寫操做完了,再也不寫了就關閉:close();
6)經常使用方法
寫方法
① write(int data):寫入第一個字節,且是從低8位寫。
② write(byte[] data):將一組字節寫入。
③ write(byte[] data.int offset,int length):從data數組的offset位置開始寫,連續寫length個字節到文件中。
④ writeInt(int):一次寫4個字節,寫int值。
⑤ writeLong(long):一次寫8個字節,寫long值。
⑥ writeUTF(String):以UTF-8編碼將字符串連續寫入文件。
讀方法:
① int read():讀一個字節,若已經讀取到文件末尾,則返回-1。
② int read(byte[] buf):嘗試讀取buf.length個字節。並將讀取的字節存入buf數組。返回值爲實際讀取的字節數。
③ int readInt():連續讀取4字節,返回該int值
④ long readLong():連續讀取8字節,返回該long值
⑤ String readUTF():以UTF-8編碼將字符串連續讀出文件,返回該字符串值
案例20:
7)RandomAcceccFile執行復制操做:讀取一個文件,將這個文件中的每個字節寫到另外一個文件中就完成了複製功能。
案例21: