怎么在JAVA中實現內存流?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創新互聯是一家集網站建設,資源企業網站建設,資源品牌網站建設,網站定制,資源網站建設報價,網絡營銷,網絡優化,資源網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。掌握內存操作流
輸入和輸出都是從文件中來的,當然,也可將輸出的位置設置在內存上,這就需要ByteArrayInputStream和ByteArrayOutputStream
ByteArrayInputStream:將內容寫入到內存中,
ByteArrayOutputStream:將內存中數據輸出
此時的操作應該以內存為操作點。
利用此類 完成一些功能。
常用方法
ByteArrayInputStream :是InputStream子類。
public class ByteArrayInputStream extends InputStream
構造方法:
ByteArrayInputStream(byte[] buf) //創建一個 ByteArrayInputStream,使用 buf 作為其緩沖區數組。
接收一個byte數組,實際上內存的輸入就是在構造方法上將數據傳遞到內存之中。
ByteArrayOutputStream:是OutputStream子類
輸出就是從內存中寫出數據。
public class ByteArrayOutputStream extends OutputStream
構造方法:
ByteArrayOutputStream() 創建一個新的 byte 數組輸出流。
主要方法:
void write(int b) 將指定的字節寫入此 byte 數組輸出流。
利用他們,完成一個大小寫字母轉換順序的程序。
重溫一下這個方法:getBytes();定義如下:返回的是一個byte類型的數組。
public byte[] getBytes() { return StringCoding.encode(value, 0, value.length); }
1,
int size() 返回緩沖區的當前大小
2,
byte[] toByteArray() 創建一個新分配的 byte 數組。
3,
String toString() 使用平臺默認的字符集,通過解碼字節將緩沖區內容轉換為字符串。
利用他們,完成一個大小寫字母轉換順序的程序。
String類的大小寫轉換方法:
String toLowerCase() 使用默認語言環境的規則將此 String 中的所有字符都轉換為小寫。
轉大寫:
String toUpperCase() 使用默認語言環境的規則將此 String 中的所有字符都轉換為大寫。
如果要想把一個大寫邊小寫,則可以通過包裝類,字符的包裝類是Character。
static char toLowerCase(char ch) 使用取自 UnicodeData 文件的大小寫映射信息將字符參數轉換為小寫。
代碼實例:
注意,跟文件讀取不一樣,不要設置文件路徑。
package 類集; import java.io.* ; public class ByteArrayDemo01{ public static void main(String args[]){ String str = "HELLOWORLD" ; // 定義一個字符串,全部由大寫字母組成 ByteArrayInputStream bis = null ; // 內存輸入流 ByteArrayOutputStream bos = null ; // 內存輸出流 bis = new ByteArrayInputStream(str.getBytes()) ; // 向內存中輸出內容,注意,沒有跟文件讀取一樣,設置文件路徑。 bos = new ByteArrayOutputStream() ; // 準備從內存ByteArrayInputStream中讀取內容,注意,跟文件讀取不一樣,不要設置文件路徑。 int temp = 0 ; while((temp=bis.read())!=-1) { char c = (char) temp ; // 讀取的數字變為字符 bos.write(Character.toLowerCase(c)) ; // 將字符變為小寫 } // 所有的數據就全部都在ByteArrayOutputStream中 String newStr = bos.toString() ; // 因為所有output的數據都在ByteArrayOutputStream實例對象中,所以可以取出內容,將緩沖區內容轉換為字符串。 try{ bis.close() ; bos.close() ; }catch(IOException e){ e.printStackTrace() ; } System.out.println(newStr) ; } };
實際上以上操作很好體現了對象的多態。通過實例化其子類不同,完成的功能也不同,也就相當于輸出的位置不同,
如果是輸出文件,則使用FileXxxx類。如果是內存,則使用ByteArrayXxx。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯網站建設公司行業資訊頻道,感謝您對創新互聯建站的支持。
另外有需要云服務器可以了解下創新互聯建站m.newbst.com,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、建站服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:怎么在JAVA中實現內存流-創新互聯
路徑分享:http://m.newbst.com/article28/dcjocp.html
成都網站建設公司_創新互聯,為您提供自適應網站、定制網站、服務器托管、網站排名、企業建站、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯