欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談JAVA 內(nèi)存流的實現(xiàn)

 更新時間:2020年02月04日 10:58:50   作者:huan歡  
這篇文章主要介紹了淺談JAVA 內(nèi)存流的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

掌握內(nèi)存操作流

輸入和輸出都是從文件中來的,當然,也可將輸出的位置設置在內(nèi)存上,這就需要ByteArrayInputStream和ByteArrayOutputStream

ByteArrayInputStream:將內(nèi)容寫入到內(nèi)存中,

ByteArrayOutputStream:將內(nèi)存中數(shù)據(jù)輸出

此時的操作應該以內(nèi)存為操作點。

利用此類 完成一些功能。

常用方法

ByteArrayInputStream :是InputStream子類。

public class ByteArrayInputStream extends InputStream

構造方法:

ByteArrayInputStream(byte[] buf) 
     //創(chuàng)建一個 ByteArrayInputStream,使用 buf 作為其緩沖區(qū)數(shù)組。

接收一個byte數(shù)組,實際上內(nèi)存的輸入就是在構造方法上將數(shù)據(jù)傳遞到內(nèi)存之中。

ByteArrayOutputStream:是OutputStream子類

輸出就是從內(nèi)存中寫出數(shù)據(jù)。

public class ByteArrayOutputStream extends OutputStream

構造方法:

ByteArrayOutputStream() 
     創(chuàng)建一個新的 byte 數(shù)組輸出流。

主要方法:

void write(int b) 
     將指定的字節(jié)寫入此 byte 數(shù)組輸出流。 

利用他們,完成一個大小寫字母轉(zhuǎn)換順序的程序。

重溫一下這個方法:getBytes();定義如下:返回的是一個byte類型的數(shù)組?!?/p>

  public byte[] getBytes() {
    return StringCoding.encode(value, 0, value.length);
  }

1,

int size() 
     返回緩沖區(qū)的當前大小 

2,

byte[] toByteArray() 
     創(chuàng)建一個新分配的 byte 數(shù)組。 

3,

String toString() 
     使用平臺默認的字符集,通過解碼字節(jié)將緩沖區(qū)內(nèi)容轉(zhuǎn)換為字符串。 

利用他們,完成一個大小寫字母轉(zhuǎn)換順序的程序。

String類的大小寫轉(zhuǎn)換方法:

 String toLowerCase() 
     使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為小寫。 

轉(zhuǎn)大寫:

String toUpperCase() 
     使用默認語言環(huán)境的規(guī)則將此 String 中的所有字符都轉(zhuǎn)換為大寫。 

如果要想把一個大寫邊小寫,則可以通過包裝類,字符的包裝類是Character。

static char toLowerCase(char ch) 
     使用取自 UnicodeData 文件的大小寫映射信息將字符參數(shù)轉(zhuǎn)換為小寫。 

代碼實例:

注意,跟文件讀取不一樣,不要設置文件路徑。

package 類集;
import java.io.* ;
public class ByteArrayDemo01{
  public static void main(String args[]){
    String str = "HELLOWORLD" ;    // 定義一個字符串,全部由大寫字母組成
    ByteArrayInputStream bis = null ;  // 內(nèi)存輸入流
    ByteArrayOutputStream bos = null ;  // 內(nèi)存輸出流
    bis = new ByteArrayInputStream(str.getBytes()) ;  // 向內(nèi)存中輸出內(nèi)容,注意,沒有跟文件讀取一樣,設置文件路徑。
    bos = new ByteArrayOutputStream() ;  // 準備從內(nèi)存ByteArrayInputStream中讀取內(nèi)容,注意,跟文件讀取不一樣,不要設置文件路徑。
     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() ; // 因為所有output的數(shù)據(jù)都在ByteArrayOutputStream實例對象中,所以可以取出內(nèi)容,將緩沖區(qū)內(nèi)容轉(zhuǎn)換為字符串。
     try{         bis.close() ;         bos.close() ;      }catch(IOException e){         e.printStackTrace() ;     } System.out.println(newStr) ;    } };

實際上以上操作很好體現(xiàn)了對象的多態(tài)。通過實例化其子類不同,完成的功能也不同,也就相當于輸出的位置不同,

如果是輸出文件,則使用FileXxxx類。如果是內(nèi)存,則使用ByteArrayXxx。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 基于Spring BeanUtils的copyProperties方法使用及注意事項

    基于Spring BeanUtils的copyProperties方法使用及注意事項

    這篇文章主要介紹了基于Spring BeanUtils的copyProperties方法使用及注意事項,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • MAC配置java+jmeter環(huán)境變量過程解析

    MAC配置java+jmeter環(huán)境變量過程解析

    這篇文章主要介紹了MAC配置java+jmeter環(huán)境變量過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Java集合WeakHashMap源碼分析

    Java集合WeakHashMap源碼分析

    這篇文章主要介紹了Java集合WeakHashMap源碼分析,和HashMap一樣,WeakHashMap 也是一個散列表,它存儲的內(nèi)容也是鍵值對(key-value)映射,而且鍵和值都可以是null,需要的朋友可以參考下
    2023-09-09
  • MybatisPlus 自定義.vm模板的生成

    MybatisPlus 自定義.vm模板的生成

    為更加快捷方便的開發(fā)代碼,使用MybatisPlus的代碼自動生成功能,將一些繁瑣的操作自動生成,本文主要介紹了MybatisPlus 自定義.vm模板的生成,感興趣的可以了解一下
    2024-03-03
  • JAVA字符串反轉(zhuǎn)的三種方法

    JAVA字符串反轉(zhuǎn)的三種方法

    這篇文章主要介紹了JAVA字符串反轉(zhuǎn)的三種方法,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下
    2020-09-09
  • 使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄

    使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑記錄

    這篇文章主要介紹了使用@TableField(updateStrategy=FieldStrategy.IGNORED)遇到的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • RabbitMQ實現(xiàn)消費端限流的步驟

    RabbitMQ實現(xiàn)消費端限流的步驟

    消費者端限流的主要目的是控制消費者每次從 RabbitMQ 中獲取的消息數(shù)量,從而實現(xiàn)消息處理的流量控制,這篇文章主要介紹了RabbitMQ如何實現(xiàn)消費端限流,需要的朋友可以參考下
    2024-03-03
  • SpringBoot中的@CrossOrigin注解詳解

    SpringBoot中的@CrossOrigin注解詳解

    這篇文章主要介紹了SpringBoot中的@CrossOrigin注解詳解,跨源資源共享(CORS)是由大多數(shù)瀏覽器實現(xiàn)的W3C規(guī)范,允許您靈活地指定什么樣的跨域請求被授權,而不是使用一些不太安全和不太強大的策略,需要的朋友可以參考下
    2023-11-11
  • java面試突擊之sleep和wait有什么區(qū)別詳析

    java面試突擊之sleep和wait有什么區(qū)別詳析

    按理來說sleep和wait本身就是八竿子打不著的兩個東西,但是在實際使用中大家都喜歡拿他們來做比較,或許是因為它們都可以讓線程處于阻塞狀態(tài),這篇文章主要給大家介紹了關于java面試突擊之sleep和wait有什么區(qū)別的相關資料,需要的朋友可以參考下
    2022-02-02
  • SpringBoot執(zhí)行定時任務@Scheduled的方法

    SpringBoot執(zhí)行定時任務@Scheduled的方法

    這篇文章主要介紹了SpringBoot執(zhí)行定時任務@Scheduled的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論