1. 程式人生 > >201711671105 《Java程式設計》第十章學習總結

201711671105 《Java程式設計》第十章學習總結

教材學習內容總結

1、File類

主要用於獲取檔案本身的資訊,如檔案所在的目錄、檔案的長度或檔案讀寫許可權等,不涉及對檔案的讀寫操作。

file物件構造方法:

File(String filename);

File(String directoryPath,String filename);

File(File dir,String filename);

(filename 是檔名字,directoryPath 是檔案的路徑,dir為一個目錄)

1.1、屬性:

public String getName () 獲取檔案的名字

public boolean canRead()判斷檔案是否是可讀

public String getName() 獲取檔案的名字

public boolean canRead() 判斷檔案是否是可讀的

public boolean canWrite() 判斷檔案是否可被寫入

public boolean exits() 判斷檔案是否存在

public long length() 獲取檔案的長度(單位是位元組)

public String getAbsolutePath() 獲取檔案的絕對路徑

public String getParent() 獲取檔案的父目錄

public boolean isFile() 判斷檔案是否是一個普通檔案,而不是目錄

public boolean isDirectroy() 判斷檔案是否是一個目錄

public boolean isHidden() 判斷檔案是否是隱藏檔案

public long lastModified() 獲取檔案最後修改的時間

1.2 目錄

建立目錄:

public boolean mkdir()  //建立成功返回true,失敗返回false

列出檔案:

public String[] list() 用字串形式返回目錄下的全部檔案

public File [] listFiles() 用File物件形式返回目錄下的全部檔案

public String[] list(FilenameFilter obj) 用字串形式返回目錄下的指定型別的所有檔案

public File [] listFiles(FilenameFilter obj) 用File物件形式返回目錄下的指定型別所有檔案。

上述兩方法的引數FilenameFilter是一個介面,該介面有一個方法:

public boolean accept(File dir,String name); 

1.3檔案的建立與刪除

建立:

File file = new File ("C:\\myletter","letter.txt");

刪除:

file.delete();

1.4 執行可執行檔案

使用java.lang包中的Runtime類:

1:使用Runtime類宣告一個物件:Runtime ec;

2:使用該類的getRuntime()靜態方法建立這個物件: ec = Runtime.get.Runtime();

ec可以呼叫exec(String command)方法開啟本地機器的可執行檔案或執行一個操作。

2、檔案位元組輸入流

4步驟:

1、設定輸入流的源;

2、建立指向源的輸入流;

3、讓輸入流讀取源中的資料;

4、關閉輸入流。

2.1構造方法

FileInputStream(String name);

FileInputStream(File file); 

2.2使用輸入流讀取位元組

int read() 讀取單個位元組的資料,返回位元組值(0~255整數),如果未讀出位元組就返回-1。

int read(byte b[]) 讀取b.length個位元組到位元組陣列b中,返回實際讀取的位元組數。如果到達檔案的末尾,則返回-1。

int read(byte b[], int off, int len) 讀取len個位元組到位元組陣列b中,並返回實際讀取的位元組數目。如果到達檔案的末尾,則返回-1,引數off指定從位元組陣列的某個位置開始存放讀取的資料。

2.3關閉流

close()

3、檔案位元組輸出流

4步驟:

1、給出輸出流的目的地;

2、建立指向目的地的輸出流;

3、讓輸出流把資料寫入到目的地;

4、關閉輸出流。

3.1 構造方法

FileOutputStream(String name);

FileOutputStream(File file);

3.2使用輸出流寫位元組

void write(int n) 向目的地寫入單個位元組。

void write(byte b[]) 向目的地寫入一個位元組陣列。

void write(byte b[],int off,int len) 從位元組陣列中偏移量off處取len個位元組寫到目的地。

3.3關閉流

呼叫close()方法。

關閉輸出流可以把該流所用的緩衝區的內容洗掉(通常沖洗到磁碟檔案上)。

4、 檔案字元輸入、輸出流

FileReader (String filename); FileReader(File filename);

FileWriter (String filename); FileWriter (File filename) ;

FileWriter (String filename,boolean append); FileWriter (File filename,boolean append) ;

write方法將資料首先寫入到緩衝區,每當緩衝區溢位時,緩衝區的內容被自動寫入到目的地,如果關閉流,緩衝流的內容會立刻被寫入目的地,流呼叫flush()方法可以立刻沖洗當前緩衝區,即將當前緩衝區的內容寫入到目的地。

5、緩衝流

構造方法:

BufferedReader(Reader in); 

BufferedWriter (Writer out); 

讀寫檔案:

readLine()  // 讀取文字行

write(String s,int off,int len)   //把字串s寫到檔案中

newLine();   //向檔案寫入一個回行符

6、隨機流

構造方法:

RandomAccessFile(String name,String mode) ; 

RandomAccessFile(File file,String mode) ;

相關方法:

seek(long a)  //定位RandomAccessFile流的讀寫位置 

getFilePointer()   //獲取流的當前讀寫位置  

7、陣列流

7.1位元組陣列流

ByteArrayInputStream流構造方法:

ByteArrayInputStream(byte[] buf);

ByteArrayInputStream(byte[] buf,int offset,int length);

方法:

public int read();  //順序地從源中讀出一個位元組 

public int read(byte[] b,int off,int len);//順序地從源中讀出引數len指定的位元組數 

ByteArrayOutputStream流構造方法:

ByteArrayOutputStream();

ByteArrayOutputStream(int size);

方法 :

public void write(int b); //順序地向緩衝區寫入一個位元組  

public void write(byte[] b,int off,int len); //將引數b中指定的len個位元組順序地寫入緩衝區 

public byte[] toByteArray(); //返回輸出流寫入到緩衝區的全部位元組

8、資料流

DataInputStream(InputStream in)//建立的資料輸入流指向一個由引數in指定的底層輸入流
DataOutputStream(OutnputStream out)//建立的資料輸出流指向一個由引數out指定的底層輸出流

9、物件流

序列化:將物件的狀態與資訊轉換為可傳輸

構造方法:

ObjectInputStream(InputStream in)

ObjectOutputStream(OutputStream out) 

方法:

writeObject(Object obj)   //將一個物件obj寫入到一個檔案

readObject()   //讀取一個物件到程式中

10、使用Scanner解析檔案

1、使用預設分割標記解析檔案:

Scanner sc = new Scanner(file);

2、使用正則表示式作為分割標記解析檔案

sc.useDelimiter(正則表示式);  

方法: 

next()    //依次返回file中的單詞

hasNext()   //判斷file最後一個單詞是否已被next()方法返回