本篇文章給大家分享的是有關(guān)JAVA中怎么實(shí)現(xiàn)內(nèi)存流,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為日喀則等服務(wù)建站,日喀則等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為日喀則企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
掌握內(nèi)存操作流
輸入和輸出都是從文件中來的,當(dāng)然,也可將輸出的位置設(shè)置在內(nèi)存上,這就需要ByteArrayInputStream和ByteArrayOutputStream
ByteArrayInputStream:將內(nèi)容寫入到內(nèi)存中,
ByteArrayOutputStream:將內(nèi)存中數(shù)據(jù)輸出
此時(shí)的操作應(yīng)該以內(nèi)存為操作點(diǎn)。
利用此類 完成一些功能。
常用方法
ByteArrayInputStream :是InputStream子類。
public class ByteArrayInputStream extends InputStream
構(gòu)造方法:
ByteArrayInputStream(byte[] buf) //創(chuàng)建一個(gè) ByteArrayInputStream,使用 buf 作為其緩沖區(qū)數(shù)組。
接收一個(gè)byte數(shù)組,實(shí)際上內(nèi)存的輸入就是在構(gòu)造方法上將數(shù)據(jù)傳遞到內(nèi)存之中。
ByteArrayOutputStream:是OutputStream子類
輸出就是從內(nèi)存中寫出數(shù)據(jù)。
public class ByteArrayOutputStream extends OutputStream
構(gòu)造方法:
ByteArrayOutputStream() 創(chuàng)建一個(gè)新的 byte 數(shù)組輸出流。
主要方法:
void write(int b) 將指定的字節(jié)寫入此 byte 數(shù)組輸出流。
利用他們,完成一個(gè)大小寫字母轉(zhuǎn)換順序的程序。
重溫一下這個(gè)方法:getBytes();定義如下:返回的是一個(gè)byte類型的數(shù)組?!?/p>
public byte[] getBytes() { return StringCoding.encode(value, 0, value.length); }
1,
int size() 返回緩沖區(qū)的當(dāng)前大小
2,
byte[] toByteArray() 創(chuàng)建一個(gè)新分配的 byte 數(shù)組。
3,
String toString() 使用平臺(tái)默認(rèn)的字符集,通過解碼字節(jié)將緩沖區(qū)內(nèi)容轉(zhuǎn)換為字符串。
利用他們,完成一個(gè)大小寫字母轉(zhuǎn)換順序的程序。
String類的大小寫轉(zhuǎn)換方法:
String toLowerCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為小寫。
轉(zhuǎn)大寫:
String toUpperCase() 使用默認(rèn)語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為大寫。
如果要想把一個(gè)大寫邊小寫,則可以通過包裝類,字符的包裝類是Character。
static char toLowerCase(char ch) 使用取自 UnicodeData 文件的大小寫映射信息將字符參數(shù)轉(zhuǎn)換為小寫。
代碼實(shí)例:
注意,跟文件讀取不一樣,不要設(shè)置文件路徑。
package 類集;import java.io.* ;public class ByteArrayDemo01{ public static void main(String args[]){ String str = "HELLOWORLD" ; // 定義一個(gè)字符串,全部由大寫字母組成 ByteArrayInputStream bis = null ; // 內(nèi)存輸入流 ByteArrayOutputStream bos = null ; // 內(nèi)存輸出流 bis = new ByteArrayInputStream(str.getBytes()) ; // 向內(nèi)存中輸出內(nèi)容,注意,沒有跟文件讀取一樣,設(shè)置文件路徑。 bos = new ByteArrayOutputStream() ; // 準(zhǔn)備從內(nèi)存ByteArrayInputStream中讀取內(nèi)容,注意,跟文件讀取不一樣,不要設(shè)置文件路徑。 int temp = 0 ; while((temp=bis.read())!=-1) { char c = (char) temp ; // 讀取的數(shù)字變?yōu)樽址? bos.write(Character.toLowerCase(c)) ; // 將字符變?yōu)樾? } // 所有的數(shù)據(jù)就全部都在ByteArrayOutputStream中 String newStr = bos.toString() ; // 因?yàn)樗衞utput的數(shù)據(jù)都在ByteArrayOutputStream實(shí)例對(duì)象中,所以可以取出內(nèi)容,將緩沖區(qū)內(nèi)容轉(zhuǎn)換為字符串。 try{ bis.close() ; bos.close() ; }catch(IOException e){ e.printStackTrace() ; } System.out.println(newStr) ; } };
實(shí)際上以上操作很好體現(xiàn)了對(duì)象的多態(tài)。通過實(shí)例化其子類不同,完成的功能也不同,也就相當(dāng)于輸出的位置不同,
如果是輸出文件,則使用FileXxxx類。如果是內(nèi)存,則使用ByteArrayXxx。
以上就是JAVA中怎么實(shí)現(xiàn)內(nèi)存流,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。