日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java——IO流整理(一)

發(fā)布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java——IO流整理(一) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、基礎(chǔ)

1.字節(jié)、字符

  • 位(bit)   :二進(jìn)制中的一個1或0稱為1位
  • 字節(jié)(byte) :8個二進(jìn)制位稱為一個字節(jié)
  • 字符    ? :一個自然符號稱為字符。英文符號(1個字節(jié))、中文符號(2個字節(jié))

2.編碼格式

  • ASCII  ????? :有256字符組成,內(nèi)部包含了對英文、符號及數(shù)字的定義
  • GB2312??????? :擴(kuò)展后的中文字符集。內(nèi)部包含了2萬多個中文字符
  • ISO-8859-1?? : 歐美字符集
  • Unicode??????? :包含了所有字符的字符集。內(nèi)容有雙字節(jié)組成
  • Utf-8??????????? : 包含了大部分字符的字符集。實際使用中應(yīng)用比較廣泛的字符集

二、IO

1.概述

  IO是Input Output的縮寫,表示輸入與輸出。IO按照不同的方式可以包含如下分類

  •     文件在讀取或傳輸過程中連續(xù)的內(nèi)容就稱為流。

      2. 內(nèi)容讀取方式

        字節(jié)流方式和字符流方式

      3. 按照方向劃分

        輸入流(從源到程序稱為輸入流)和輸出流(從程序到目標(biāo)源稱為輸出流)

    2. 字節(jié)流方式處理

    1.輸入流

    • FileInputStream ? ? ? ??? :按照字節(jié)流方式對內(nèi)容進(jìn)行讀取(不適用緩存)
    • BufferedInputStream?? :按照字節(jié)方式對內(nèi)容進(jìn)行讀取(使用了緩存)
    • DataInputStream???????? :按照類型對內(nèi)容進(jìn)行讀取
    • ObjectInputStream????? :按照對象的類型進(jìn)行數(shù)據(jù)的讀取(反序列化過程中必須使用)
    • ByteArrayInputStream? : 提供一個byte型的輸入緩沖區(qū)

    2.輸出流

    • FileOutputStream  ??? :對內(nèi)容進(jìn)行輸出(未使用緩沖區(qū))
    • BufferedOutputStream? :使用緩沖區(qū)對內(nèi)容進(jìn)行輸出
    • DataOutputStream  ? :對內(nèi)容按照類型進(jìn)行存儲
    • ObjectOutputStream???? :對對象進(jìn)行存儲(序列化過程必須使用)
    • PrintStream????????????????? :功能與OutputStream相似,但是提供了更加豐富的輸出方式
    • ByteArrayOutputStream :對輸出內(nèi)容提供一個緩沖區(qū)

    3. 字節(jié)流方式處理

    1. 輸入流

    • FileReader
    • BufferReader
    • CharArrayReader
    • StringReader

    2. 輸出流

    • FileWriter
    • BufferWriter
    • CharArrayWriter
    • StringWriter
    • PrintWriter

    3.常見方法

    • Read() :讀取內(nèi)容
    • Write() :向媒體中寫入內(nèi)容
    • Flush() :刷新緩沖區(qū),強(qiáng)制將內(nèi)容寫入到文件中
    • Close() :關(guān)閉當(dāng)前對象

    三、?序列化與反序列化

    1.持久化存儲

    將對象的內(nèi)容進(jìn)行長期的保存(對象內(nèi)容時存儲在內(nèi)存中的,隨著程序的關(guān)閉對象的信息也會丟失)。通過將對象的內(nèi)容寫入到文件中以實現(xiàn)文件內(nèi)容的持久化保存

    2.序列化及反序列化

    2.1.?概念

    • 序列化

    將對象存儲到文件的過程就成為序列化。

    • 反序列化

    將文件中的內(nèi)容轉(zhuǎn)換為對象的過程就成為反序列化

    2.2.?要求

    • 只有實現(xiàn)了Serializable接口的類才具有可序列化的能力
    • 如果類中使用了其他的類,則該類也必須實現(xiàn)Serializable接口
    • Static的內(nèi)容是不會被序列化的(因為static成員是屬于類的)
    • 如果對象中的某個屬性不需要被序列化可以是transient進(jìn)行修飾
    • 屬性的訪問修飾符是無法被序列化的
    • 不同版本的序列化文件無法兼容

    2.3.?實現(xiàn)步驟

    1)?自定義類并實現(xiàn)Serializable接口

    2)?創(chuàng)建ObjectOutput(Input)Stream對象

    3)?通過對象進(jìn)行讀取或?qū)懭?/p>

    4)?關(guān)閉流對象

    2.4.?優(yōu)點

    以二進(jìn)制形式存在,所以具有與平臺無關(guān)性的特點(可以在各種平臺上使用)。

    2.5.?應(yīng)用

    • 網(wǎng)絡(luò)中對象數(shù)據(jù)的傳輸(Socket通信)
    • 對象的持久化保存

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/rsdqc/p/5388631.html

    總結(jié)

    以上是生活随笔為你收集整理的java——IO流整理(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。