Java IO學習筆記(1)

2021-08-15 03:59:03 字數 2289 閱讀 6506

物件的輸入輸出流 : 物件的輸入輸出流 主要的作用是用於寫物件的資訊與讀取物件的資訊。 物件資訊一旦寫到檔案上那麼物件的資訊就可以做到持久化了

物件的輸出流: objectoutputstream .

物件的輸入流: objectinputstream 

輸入輸出流要注意的細節:

1. 如果物件需要被寫出到檔案上,那麼物件所屬的類必須要實現serializable介面。 serializable介面沒有任何的方法,是乙個標識介面而已。

2. 物件的反序列化建立物件的時候並不會呼叫到構造方法的、

3. serialversionuid 是用於記錄class檔案的版本資訊的,serialversionuid這個數字是通過乙個類的類名、成員、包名、工程名算出的乙個數字。

4. 使用objectinputstream反序列化的時候,objeectinputstream會先讀取檔案中的serialversionuid,然後與本地的class檔案的serialversionuid

進行對比,如果這兩個id不一致,那麼反序列化就失敗了。

5. 如果序列化與反序列化的時候可能會修改類的成員,那麼最好一開始就給這個類指定乙個serialversionuid,如果一類已經指定的serialversionuid,然後

在序列化與反序列化的時候,jvm都不會再自己算這個 class的serialversionuid了。

6. 如果乙個物件某個資料不想被序列化到硬碟上,可以使用關鍵字transient修飾。

7. 如果乙個類維護了另外乙個類的引用,那麼另外乙個類也需要實現serializable介面。

properties(配置檔案類): 主要用於生產配置檔案與讀取配置檔案的資訊。

properties要注意的細節:

1. 如果配置檔案的資訊一旦使用了中文,那麼在使用store方法生成配置檔案的時候只能使用字元流解決,如果使用位元組流生成配置檔案的話,

預設使用的是iso8859-1碼表進行編碼儲存,這時候會出現亂碼。

2. 如果properties中的內容發生了變化,一定要重新使用properties生成配置檔案,否則配置檔案資訊不會發生變化。

/*需求: 使用properties實現本軟體只能 執行三次,超過了三次之後就提示購買正版,退jvm.

*/public class demo5

//建立properties物件。

properties properties = new properties();

//把配置檔案的資訊載入到properties中

properties.load(new fileinputstream(file));

fileoutputstream fileoutputstream = new fileoutputstream(file);

int count = 0; //定義該變數是用於儲存軟體的執行次數的。

//讀取配置檔案的執行次數

string value = properties.getproperty("count");

if(value!=null)

//判斷使用的次數是否已經達到了三次,

if(count==3)

count++;

system.out.println("你已經使用了本軟體第"+count+"次");

properties.setproperty("count",count+"");

//使用properties生成乙個配置檔案

properties.store(fileoutputstream,"runtime");}}

另乙個經典的用法就是io遞迴的使用:

public class demo10 		

//刪除了乙個非空的目錄

public static void deletedir(file dir)else if(file.isdirectory())

} dir.delete(); }

public static void listfiles3(file dir,string space)else if(file.isdirectory())}}

//列出乙個資料夾的子孫檔案與目錄。

public static void listfiles2(file dir,string space)else if(file.isdirectory())}}

//列出乙個資料夾的子孫檔案與目錄。

public static void listfiles1(file dir)else if(file.isdirectory())

}

}}

Java IO學習筆記

1.宣告乙個檔案物件,separator代表 會因作業系統的不同而不同,比如linux下是 file f new file d file.separator test.txt 2.建立檔案 f.createnewfile 3.刪除檔案 f.delete 4.判斷檔案是否存在 f.exists 3.建...

javaIO學習筆記

1b.接收鍵盤的輸入 bufferedreader stdin new bufferedreader new inputstreamreader system.in system.out.println enter a line system.out.println stdin.readline 2...

JAVA IO流學習筆記(基礎)

基礎知識 1 字元流 2 位元組流 inputstream 讀取 與字元流的思路一樣 轉換 從檔案 文字 inputstreamreader 位元組到字元的橋梁 從文字 檔案 outputstreamwriter 字元到位元組的橋梁 例如 把乙個檔案存到另外乙個儲存空間上。技巧 1 各種io流下的子...