物件流 列印流和轉換流

2022-07-01 06:27:12 字數 1603 閱讀 8207

物件流

物件流:object0utputstream/0bjectinputstream

增強了緩衝區功能

增強了讀寫8種基本資料型別和字串功能

增強了讀寫物件的功能

1.read0bject() 從流中讀取乙個物件

2.write0bject(0bject obj) 向流中寫入乙個物件

使用流傳輸物件的過程稱為序列化、反序列化

eg : 

public class student implements serializable

public student(string name, int age)

public string getname()

public void setname(string name)

public int getage()

public void setage(int age)

@override

public string tostring() ';

}}

/**

* 使用objectoutputstream實現物件的序列化

* 要求:

* 1.序列化類必須要實現serializable介面

* 2.序列化類中物件屬性要求實現serializable介面

* 3.序列化版本號id,保證序列化的類和反序列化的類是同乙個類

* 4.使用transient修飾屬性(瞬間的),這個屬性不能序列化

* 5.靜態屬性不能序列化

* 6.序列化多個物件,可以借助集合實現

* @author

*/public class demo06

}

public class demo07 

}

列印流

printwriter:

封裝了print() / println()方法,支援寫入後換行

支援資料原樣列印

eg : 

public class demo07 

}

轉換流

橋轉換流:inputstreamreader/outputstreamwriter

可將位元組流轉換為字元流

可設定字元的編碼方式

eg : 

public class demo01 

//3.關閉

isr.close();

}}

public class demo02 

//3.關閉

osw.close();

system.out.println("執行換行");

}}

字元編碼

iso-8859-1收錄除ascii外,還包括西歐、希臘語、泰語、阿拉伯語、希伯來語對應的文字元號

utf-8     針對unicode碼表的可變長度字元編碼

gb2312     簡體中文

gbk     簡體中文、擴充

big5台灣,正體中文

當編碼方式和解碼方式不一致時,會出現亂碼

轉換流 緩衝流

輸入 輸出流體系中提供了兩個轉換流,這兩個轉換流用於實現將位元組流轉換為字元流。1.1outputstreamwriter outputstreamwriter 是字元流通向位元組流的橋梁 可使用指定的字元編碼表,將要寫入流中的字元編碼成位元組。它的作用的就是,將字串按照指定的編碼表轉成位元組,在使...

檔案流和轉換流亂碼

實際開發中經常會遇到文字類檔案的讀寫或者是檔案複製傳輸等等 如果這個時候搞不清楚使用什麼樣的流就會亂碼,複製後的檔案打不開 要用什麼流由你的檔案的儲存結構 字元檔案還包括編碼集 和用途決定 使用緩衝和位元組陣列的位元組流複製檔案 public void copyfile string sourcef...

IO流之轉換流

查閱outputstreamwriter的api介紹,outputstreamwriter 是字元流通向位元組流的橋梁 可使用指定的字元編碼表,將要寫入流中的字元編碼成位元組。它的作用的就是,將字串按照指定的編碼表轉成位元組,在使用位元組流將這些位元組寫出去。public static void w...