国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

黑馬程序員——IO包中的其他類

2019-11-14 23:29:47
字體:
來源:轉載
供稿:網友
黑馬程序員——IO包中的其他類

IO包中的其他類:

1.打印流:提供了打印方法,可以將各種數據類型的數據原樣打印 字節打印流PRintStream 構造函數可以接受的參數類型: (1)File對象 File (2)字符串路徑 String (3)字節輸出流 OutputStream

字符打印流PrintWriter 構造函數可以接受的參數類型: (1)File對象 File (2)字符串路徑 String (3)字節輸出流 OutputStream (4)字符輸出流:Writer 2.SequenceInputStream(串聯流) 用于把多個流中的數據寫入一個流中,構造函數傳入Enumeration<? extends InpuStream> 需要用到Vector 3.操作對象 ObjectInputStream,ObjectOutputStream 被操作的對象要實現Serializable(標記接口), Serializable運行時使用一個稱為serialVersionUID的版本號與每個可序列化類相關聯, 次版本號根據類中的成員計算得出。。如果接受者加載該對象的類的serialVersionUID與對應的發送者的版本號不同,則 反序列化會導致InvalidClassException。可序列化類可以通過聲明名為serialVersion的字段(該字段必須是靜態,最終的long型字段) 顯式聲明自己的serialVersion,如此當改變類成員時,也可反序列化。

靜態成員不會被序列化,因為只能序列化對中的數據,靜態成員在方法區。 如果希望摸個成員不被序列化,可以用transient修飾,保證其值在對內存中存在,而不再文本文件中存在 分別使用readObject(Object) 和writeObject(Object)方法讀取對象和持久化對象

4.管道流 PipedInputStream,PipedOutputStream 管道輸入流應該連接到管道輸出流;管道輸入流提供要寫入管道輸出流的所有數據字節。 通常,數據由某個線程從 PipedInputStream 對象讀取,并由其他線程將其寫入到相應的 PipedOutputStream。 不建議對這兩個對象嘗試使用單個線程,因為這樣可能死鎖線程 。管道輸入流包含一個緩沖區,可在緩沖區限定的范圍內將讀操作和寫操作分離開。 如果向連接管道輸出流提供數據字節的線程不再存在,則認為該管道已損壞 5.RandomaccessFile : 該類不算是流體系中的子類,是直接繼承自Object 但是他是IO包成員,因為它具備讀寫功能 內部封裝了一個數組,而且通過指針對數組的元素進行操作 可以通過getFilePointer獲取指針位置 同事可以通過seek改變指針位置 其實完成讀寫的原理是內部封裝了字節輸入流和輸出流 通過其構造函數可以看出,該類只能操作文件,而且操作問價還有模式:

6.操作基本數據類型 DataInputStream,DataOutputStream 7.操作字節數組 :用流的讀寫思想來操作數組 ByteArrayInputStream:在構造的時候,需要接收數據員,而且數據源是一個字節數組 ByteArrayOutputStream:在構造的時候,不用定義數據目的地,因為該對象中內部已經封裝了可變長度的字節數組 這就是數據目的地 因為這兩個流對象都操作數組,并沒有使用系統資源,所以不用close關閉 8.操作字符數組:CharArrayReader,CharArrayWriter 9.將字符流轉對象化為字節流對象,使用轉換流:InputStreamReader(字節通向字符的橋梁) InputStreamReader isr=new InputStreamReader(new FileInputStream("gbk.txt"),"gbk") OutputStreamWriter(字符通向字節的橋梁) OutputStreamReader osr=new OutputStreamReader(new FileOutputStream("utf.txt"),"UTF-8") 10.編碼:字符串變成字節數組 String>String new String(byte[],charsetName) Tomcat的編碼方式是iso8859-1 如果使用gbk編碼方式存儲了數據,取得時候解碼用的是iso8859-1, 此時可以將解碼出的數據再用iso8859-1進行編碼得到原來的字節數據,然后再用gbk解碼即可 但是如果期初是用utf-8解碼而導致亂碼,則不可逆轉,因為gbk和utf-8均識別中文


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深圳市| 理塘县| 霍邱县| 驻马店市| 长沙市| 龙游县| 呼伦贝尔市| 呼伦贝尔市| 平乐县| 哈密市| 繁昌县| 泰兴市| 肥东县| 台中市| 纳雍县| 长兴县| 贵州省| 武川县| 陕西省| 明光市| 麻栗坡县| 湄潭县| 东城区| 休宁县| 开封县| 拉萨市| 旺苍县| 会理县| 乾安县| 射阳县| 凉城县| 敦化市| 揭东县| 南岸区| 嵊州市| 共和县| 全椒县| 商丘市| 拉萨市| 和田县| 五台县|