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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java下的字符流

發布時間:2025/3/20 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java下的字符流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
java下的字符流

輸入流和輸出流相對于內存設備而言.

將外設中的數據讀取到內存中:輸入
將內存的數寫入到外設中:輸出。


字符流的由來:
其實就是:字節流讀取文字字節數據后,不直接操作而是先查指定的編碼表。獲取對應的文字。比如,字符是按照UTF-8編碼的,那么每次讀的時候,都會從
磁盤上先連續讀取三個字節,然后把這個三個字節去utf-8編碼中尋找對應的字符。列 。中文的“中”,假設其UTF-8的編碼是 “0xf4,0x32,0x12”。那么如果
讀取到這上個字節后,就會被轉化成中文的“中”字。在對這個文字進行操作。簡單說:字節流+編碼表

---------------------------------------

字節流的兩個頂層父類:
1,InputStream? 2,OutputStream.

字符流的兩個頂層父類:
1,Reader 2,Writer

這些體系的子類都以父類名作為后綴。
而且子類名的前綴就是該對象的功能。


就從熟悉的文字開始字符流,


//需求:將一些文字存儲到硬盤一個文件中。
記住;如果要操作文字數據,建議優先考慮字符流。
而且要將數據從內存寫到硬盤上,要使用字符流中的輸出流。Writer
硬盤的數據基本體現是文件。 希望找到一個可以操作文件的Writer.
找到了FileWriter
FileWriter(String fileName)
????????? 根據給定的文件名構造一個 FileWriter 對象。
FileWriter(String fileName, boolean append)
????????? 根據給定的文件名以及指示是否附加寫入數據的 boolean 值來構造 FileWriter 對象。
FileWriter(File file)
????????? 根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(File file, boolean append)
????????? 根據給定的 File 對象構造一個 FileWriter 對象。
FileWriter(FileDescriptor fd)
????????? 構造與某個文件描述符相關聯的 FileWriter 對象。
其中,append表示添加,也就是在原有的東西后面添加字符,如果沒有這個append參數,那么新創建的
文件會覆蓋之前的舊文件,并且新文件為空。
write
public void write(int c) throws IOException寫入單個字符。要寫入的字符包含在給定整數值的 16 個低位中,16 高位被忽略。
用于支持高效單字符輸出的子類應重寫此方法。
參數:c - 指定要寫入字符的 int。
拋出: IOException - 如果發生 I/O 錯誤

public void write(char[] cbuf) throws IOException寫入字符數組。
參數:cbuf - 要寫入的字符數組
拋出: IOException - 如果發生 I/O 錯誤

public abstract void write(char[] cbuf,int off,int len) throws IOException寫入字符數組的某一部分。
參數:cbuf - 字符數組
????? off - 開始寫入字符處的偏移量
????? len - 要寫入的字符數
拋出:IOException - 如果發生 I/O 錯誤

public void write(String str) throws IOException寫入字符串。
參數:str - 要寫入的字符串
拋出: IOException - 如果發生 I/O 錯誤

public void write(String str,int off,int len) throws IOException寫入字符串的某一部分。
參數:str - 字符串
????? off - 相對初始寫入字符的偏移量
????? len - 要寫入的字符數
拋出: IndexOutOfBoundsException - 如果 off 或 len 為負,或者 off+len 為負或大于給定字符串的長度
IOException - 如果發生 I/O 錯誤

flush
public abstract void flush() throws IOException刷新該流的緩沖。如果該流已保存緩沖區中各種 write() 方法的所有字符,則立即將它們寫入預期目標。然后,如果該目標是另一個字符或字節流,則將其刷新。因此,一次 flush() 調用將刷新 Writer 和 OutputStream 鏈中的所有緩沖區。
如果此流的預期目標是由底層操作系統提供的一個抽象(如一個文件),則刷新該流只能保證將以前寫入到流的字節傳遞給操作系統進行寫入,但不保證能將這些字節實際寫入到物理設備(如磁盤驅動器)。
指定者:接口 Flushable 中的 flush
拋出: IOException - 如果發生 I/O 錯誤

close
public abstract void close() throws IOException關閉此流,但要先刷新它。在關閉該流之后,再調用 write() 或 flush() 將導致拋出 IOException。關閉以前關閉的流無效。
指定者:接口 Closeable 中的 close
拋出: IOException - 如果發生 I/O 錯誤


//需求:讀取一個文本文件。將讀取到的字符打印到控制臺.
同上,找到了FileReader
FileReader(File file)
FileReader(String fileName)
FileReader(FileDescriptor fd)

read
public int read() throws IOException讀取單個字符。
覆蓋:類 Reader 中的 read
返回:讀取的字符,如果已到達流的末尾,則返回 -1
拋出: IOException - 如果發生 I/O 錯誤

read public int read(char[] cbuf,int offset,int length) throws IOException將字符讀入數組中的某一部分。
指定者:類 Reader 中的 read
參數:cbuf - 目標緩沖區
????? offset - 從其處開始存儲字符的偏移量
????? length - 要讀取的最大字符數
返回:讀取的字符數,如果已到達流的末尾,則返回 -1
拋出: IOException - 如果發生 I/O 錯誤

















posted on 2016-11-11 10:48 臥似長劍 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/chencanjian/p/6053436.html

總結

以上是生活随笔為你收集整理的java下的字符流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。