StringBuffer and IOStream 1

April 26th

StringBuffer

  • stringBuffer 源碼分析
append方法
ensureCapacityInternal

如果傳入的minimumCapacity 還是不夠的話執(zhí)行 expandCapacity 方法

expandCapacity

擴(kuò)充為原來的兩倍+2且警,默認(rèn)容量是16

StringBuffer sb=new StringBuffer(24);指定的容量越接近要存儲(chǔ)的數(shù)據(jù)越好。需要注意的是它擴(kuò)充的次數(shù)越多降宅,也會(huì)影響它的性能

  • 這里有一篇區(qū)分String與StringBuffer的文章

String與StringBuffer的區(qū)別

String 不是簡單類型隙轻,而是一個(gè)類抵栈,它被用來表示字符序列蕾管。字符本身符合 Unicode 標(biāo)準(zhǔn)线衫,其初始化方式有兩種诲锹。
如:String greeting=“Good Morning! \n”;
String greeting=new String(=“Good Morning! \n”);
String的特點(diǎn)是一旦賦值繁仁,便不能更改其指向的字符對(duì)象,如果更改归园,則會(huì)指向一個(gè)新的字符對(duì)象 黄虱。
StringBuffer是一個(gè)具有對(duì)象引用傳遞特點(diǎn)的字符串對(duì)象。
StringBuffer對(duì)象可以調(diào)用其方法動(dòng)態(tài)的進(jìn)行增加庸诱、插入捻浦、修改和刪除操作,且不用像數(shù)組那樣事先指定大小桥爽,從而實(shí)現(xiàn)多次插入字符朱灿,一次整體取出的效果,因而操作字符串非常靈活方便钠四。
一旦通過StringBuffer生成最終想要的字符串盗扒,就可調(diào)用它的toString方法將其轉(zhuǎn)換為一個(gè)String對(duì)象

StringBuffer類 StringBuffer的兄弟StringBuilder:

  • 一個(gè)可變的字符序列。此類提供一個(gè)與 StringBuffer 兼容的 API,但不保證同步缀去。該類被設(shè) 計(jì)用作 StringBuffer 的一個(gè)簡易替換,用在字符串緩沖區(qū)被單個(gè)線程使用的時(shí)候.
  • 同步一個(gè)在用寧外一個(gè)就得等环疼,不同步的大家可以一起用,StringBuffer同步的(synchronized)效率慢但線程安全朵耕,
    StringBuilder不同步的效率高炫隶,但線程不安全,不能用在多線程訪問的時(shí)候

IOStream

用到了遞歸的算法

字節(jié)輸出流,從程序向文件輸出數(shù)據(jù)

字節(jié)輸出流阎曹,從程序向文件輸出數(shù)據(jù)
OutputStream out =new FileOutputStream(file,true);

加true實(shí)在后面追加伪阶,沒有true是進(jìn)行覆蓋

字節(jié)輸入流煞檩,從文件向程序輸入數(shù)據(jù)

/*
*字節(jié)輸入流,從文件向程序輸入數(shù)據(jù)
*/
public static void read(){
  File file=new File("c:\\a.txt");
  try{
   //針對(duì)文件創(chuàng)建一個(gè)輸入流
   InputStream in=new FileInputStream(file);
   byte[] bytes=new byte[1024*1024*10];//定義一個(gè)10MB的字節(jié)數(shù)組
   int len=-1;
   StringBuffer buf=new StringBuffer();
   while((len=in.read(bytes))!=-1){
     buf.append(new String(bytes,0,len));
   }
    in.close();//關(guān)閉
    System.out.println(buf.toString());
    }catch(IOException e){
      e.printStackTrace();
 }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末栅贴,一起剝皮案震驚了整個(gè)濱河市斟湃,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌檐薯,老刑警劉巖凝赛,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異坛缕,居然都是意外死亡墓猎,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門赚楚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來毙沾,“玉大人,你說我怎么就攤上這事宠页∽蟀” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵举户,是天一觀的道長烤宙。 經(jīng)常有香客問我,道長俭嘁,這世上最難降的妖魔是什么门烂? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮兄淫,結(jié)果婚禮上屯远,老公的妹妹穿的比我還像新娘。我一直安慰自己捕虽,他們只是感情好慨丐,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泄私,像睡著了一般房揭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上晌端,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天捅暴,我揣著相機(jī)與錄音,去河邊找鬼咧纠。 笑死蓬痒,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的漆羔。 我是一名探鬼主播梧奢,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼狱掂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了亲轨?” 一聲冷哼從身側(cè)響起趋惨,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惦蚊,沒想到半個(gè)月后器虾,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蹦锋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年兆沙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晕粪。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挤悉,死狀恐怖渐裸,靈堂內(nèi)的尸體忽然破棺而出巫湘,到底是詐尸還是另有隱情,我是刑警寧澤昏鹃,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布尚氛,位于F島的核電站,受9級(jí)特大地震影響洞渤,放射性物質(zhì)發(fā)生泄漏阅嘶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一载迄、第九天 我趴在偏房一處隱蔽的房頂上張望讯柔。 院中可真熱鬧,春花似錦护昧、人聲如沸魂迄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捣炬。三九已至,卻和暖如春绽榛,著一層夾襖步出監(jiān)牢的瞬間湿酸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工灭美, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留推溃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓届腐,卻偏偏與公主長得像美莫,于是被迫代替她去往敵國和親页眯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容