1. 程式人生 > >Java輸入輸出流---面試

Java輸入輸出流---面試

  1. 目錄和檔案操作

關鍵考點:  File類的概念。  如何用File類看來操作目錄和檔案。

答案: Java提供了java.io.File類對目錄和檔案進行操作。主要的操作方法包括:路徑字串構造方法、isDirectory、isFile、createNewFile、list、getName、delete。

  1. 寫一個複製檔案的程式

關鍵考點:  InputStream的使用方法。  OutputStream的使用方法。

答案: 本題目的設計思路可以有以下幾個步驟。

  1. 用被複制檔案的路徑建立一個InputStream物件。
  2. 用複製檔案的新路徑建立一個OutputStream物件。
  3. 用read()方法迴圈把資料讀出到一個byte陣列中,直到讀出資料的長度小於0。
  4. 用write()方法把byte陣列中的位元組寫入輸出流。
  5. 最後關閉輸入流和輸出流。
  1. 如何使用隨機存取檔案RandomAccessFile類

關鍵考點:  RandomAccessFile的用法。

答案: RandomAccessFile的使用思路主要包括以下一些專案:

  1. 用length()方法獲取檔案的內容長度。
  2. 用seek()方法隨機的到達任何需要存取資料的地方。
  3. 呼叫read()方法獲取當前位置的資料,用write()方法寫入資料。
  4. 完成需要以後,呼叫close()關閉檔案的開啟。
  1. 位元組流的處理方式

關鍵考點:  流的概念。  如何使用位元組流。

答案: 位元組流處理的是計算機最基本的單位byte,他可以處理任何資料格式的資料。主要操作物件就是byte陣列,通過read()和write()方法把byte陣列中的資料寫入或讀出。

  1. 字元流的處理方式

關鍵考點:  字元流的概念。  字元流的使用方法。

答案: 字元流是由位元組流包裝而來,它的輸入和輸出流型別包括StringReader和StringWriter、BufferedReader和BufferedWriter。字元流API的基本使用思路有以下步驟:

  1. 獲取輸入或輸出流物件。可以從File得到,也可以從網路或其他地方得到。
  2. 根據特定的字元格式建立InputStreamReader或InputStreamWriter物件。
  3. 使用read()或readLine()方法,得到資料。或使用write()或print()方法進行字元輸出。
  4. 最後關閉reader或writer。
  1. 什麼是序列化

關鍵考點:  序列化的概念。

答案: 序列化本質上就是把物件記憶體中的資料按照一定的規則,變成一些列的位元組資料,然後再把這些位元組資料寫入到流中。而反序列化的過程相反,先讀取位元組資料,然後再重新組裝成Java物件。 所有需要進行序列化的類,都必須實現Serializable介面,必要時還需要提供靜態的常量serialVersionUID。

  1. 如何序列化和反序列化一個Java物件

關鍵考點:  序列化的概念和用法  ObjectOutputStream和ObjectInputStream的使用方法。

答案: 對於物件的輸出和輸入,Java的I/O體系中主要提供了ObjectOutputStream和ObjectInputStream兩個類以供開發者使用,他們的基本使用思路有以下步驟。

  1. 讓需要序列化的類實現java.io.Serializable介面。
  2. 提供靜態的long型的常量serialVersionUID。
  3. 如果是序列化物件,則用一個輸出流建立一個ObjectOutputStream物件,然後呼叫writeObject()方法。
  4. 如果是反序列化,首先使用一個輸入流建立一個ObjectInputStream物件。然後呼叫readObject()方法,得到一個Object型別的物件。最後再做型別的強制轉換。
  5. 最後關閉流。