IO流(1)
輸入流和輸出流:往程序中讀入的流就是輸入流(InputStream和Reader的子類),從程序寫出到其他介質的流就是輸出流(OutputStream和Writer的子類)。 節點流和處理流:節點流為直接操作外部介質的類如FileOutputStream,FileInputStream,FileWriter,FileReader等。處理流為套接在節點流上的流如緩沖流BufferedInputStream,BufferReader,數據流DateInputStream,DateOutputStream,轉換流InputStreamReader。 字節流和字符流:以stream結尾的都為字節流。 范圍:ascll:0-126???????unicode:0-65535 原來很多國家和地區都有自己的編碼:gbk,gb2312等,不統一。Unicode則統一了全世界文字的編碼,一個字符占兩個字節。 java中用的是unicode,一個字符占兩個字節,16位. char(字符)類型使用國際通用的16位Unicode字符集,所以能自動表達大多數國家的字符。?? String?字串里的每個字符都是16位,或者說2個字節、長整數,以便提供對Unicode字符的支持。 Java所提供的所有流類型位于包java.io內,且都分別繼承自以下四種抽象流類型。 簡單理解這四個抽象類就是:寫出,讀入(寫出,讀入都是以程序為參考物的) 區別:InputStream的int read()方法的返回值范圍為0-255(字節) Reader的int read()方法的返回值范圍為0-65535(字符) OutputStream和Writer的write()方法的區別看API,寫得很詳細。 下面分別介紹這四個抽象類: InputStream:繼承自InputStream的流都是用于向程序中輸入數據,且數據的單位為字節(8bit)[這些類中的read()方法獲取的都是unicode碼(兩字節,16位),因此對于ascll碼中的字符可以正確讀取,因為他們的unicode碼和ascll?碼是一樣的(unicode碼前一個字節為0,后一個字節則為相應的ascll碼)。但是不能讀取漢字,因為漢字的unicode碼大于256,占兩個字節]. ? OutputStream:繼承自OutputStream的流都是用于向程序中輸出數據,且數據的單位為字節(8bit) ? Reader:繼承自Reader的流都是用于向程序中輸入數據,且數據的單位為字符(16bit) ? Writer:繼承自Writer的流都是用于程序中輸出數據,且數據的單位為字符(16bit) 以上為對IO的總體概述,后續會寫出一些類的例子。
本文轉自 yzzh9 51CTO博客,原文鏈接:http://blog.51cto.com/java999/159843,如需轉載請自行聯系原作者
本文轉自 yzzh9 51CTO博客,原文鏈接:http://blog.51cto.com/java999/159843,如需轉載請自行聯系原作者
總結
- 上一篇: iptables规则基本用法
- 下一篇: PHP实现二叉树的深度优先遍历(前序、中