10.7-全棧Java筆記:常見流詳解(五)

轉(zhuǎn)換流

InputStreamReader/OutputStreamWriter用來實現(xiàn)將字節(jié)流轉(zhuǎn)化成字符流牙言。比如,如下場景:

System.in是字節(jié)流對象只损,?new BufferedReader(須接受Reader對象)辕漂。我們就能將System.in轉(zhuǎn)換成Reader對象厨喂,即可完成此場景。

【示例1】使用InputStreamReader接受用戶的輸入

BufferedReader bReader=?null;

try?{

??? System.out.println("名字:");

??? bReader =?new?BufferedReader(new?InputStreamReader(System.in));

??? System.out.println("用戶輸入:"+ bReader.readLine());

}?catch?(IOException ? e) {

?????? e.printStackTrace();

}

隨意訪問文件流

RandomAccessFile可以實現(xiàn)兩個作用:

1.?實現(xiàn)對一個文件做讀和寫的操作奴烙。

2.?可以訪問文件的任意位置助被。不像其他流只能按照先后順序讀取。

在開發(fā)某些客戶端軟件時切诀,經(jīng)常用到這個功能強大可以”任意操作文件內(nèi)容”的類揩环。比如,軟件的試用次數(shù)和使用日期幅虑,可以通過本類訪問文件中保存次數(shù)和日期的地方進行比對和修改丰滑。?JAVA很少開發(fā)客戶端軟件,所以在JAVA開發(fā)中這個類用的相對較少倒庵。

我們需掌握三個核心方法:

1. RandomAccessFile(String name,? String? mode) name用來確定文件褒墨;?mode取r(讀)或rw(可讀寫),通過mode可以確定流對文件的訪問權(quán)限哄芜。

2. seek(long? a)??用來定位流對象讀寫文件的位置貌亭,a確定讀寫位置距離文件開頭的字節(jié)個數(shù)。

3. getFilePointer()??獲得流的當(dāng)前讀寫位置认臊。

package?com.bjsxt.io;

import?java.io.RandomAccessFile;

/**

?*?測試隨意流

?*?@author?尚學(xué)

?*

?*/

public?class?Demo09 {

????public?static?void?main(String[]?args)?throws?Exception {

??????? RandomAccessFile??raf?=?null;

????????//將若干數(shù)據(jù)寫入到a.txt文件

????????int[]?data?= {10,20,30,40,50,60,70,80,90,100};

????????raf?=?new?RandomAccessFile("d:/a.txt",?"rw");

????????for(int?i=0;i<data.length;i++){

?????????????raf.writeInt(data[i]);

??????? }

????????//直接從a.txt中讀取數(shù)據(jù)圃庭,位置為從36字節(jié)開始。

????????raf.seek(4);

??????? System.out.println(raf.readInt());??//讀取4個字節(jié)(int為4個字節(jié))

????????//直接從a.txt中讀取數(shù)據(jù)失晴,隔一個讀一個數(shù)據(jù)

????????for(int?i=0;i<10;i+=2){

?????????????raf.seek(i*4);

???????????? System.out.print(raf.readInt()+"\t");

??????? }

??????? System.out.println();? ??//換行

????????//在8字節(jié)處插入一個新數(shù)據(jù)45剧腻,替換以前的數(shù)據(jù)30

??? ????raf.seek(8);

????????raf.writeInt(45);

????????for(int?i=0;i<10;i++){

?????????????raf.seek(i*4);

???????????? System.out.print(raf.readInt()+"\t");

??????? }

????????raf.close();

??? }

}

示例1 ?運行效果圖

至此,所有的常見流我們已經(jīng)學(xué)習(xí)完畢涂屁,下節(jié)我們學(xué)習(xí)關(guān)于「Java對象的序列化和反序列化」书在。




「全棧Java筆記」是一部能幫大家從零到一成長為全棧Java工程師系列筆記。筆者江湖人稱 Mr. G拆又,10年Java研發(fā)經(jīng)驗儒旬,曾在神州數(shù)碼栏账、航天院某所研發(fā)中心從事軟件設(shè)計及研發(fā)工作,從小白逐漸做到工程師栈源、高級工程師挡爵、架構(gòu)師。精通Java平臺軟件開發(fā)甚垦,精通JAVAEE茶鹃,熟悉各種流行開發(fā)框架。


?筆記包含從淺入深的六大部分:

?A-Java入門階段

?B-數(shù)據(jù)庫從入門到精通

?C-手刃移動前端和Web前端

?D-J2EE從了解到實戰(zhàn)

?E-Java高級框架精解

?F-Linux和Hadoop?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末艰亮,一起剝皮案震驚了整個濱河市闭翩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌迄埃,老刑警劉巖疗韵,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異调俘,居然都是意外死亡伶棒,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門彩库,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肤无,“玉大人,你說我怎么就攤上這事骇钦⊥鸾ィ” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵眯搭,是天一觀的道長窥翩。 經(jīng)常有香客問我,道長鳞仙,這世上最難降的妖魔是什么寇蚊? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮棍好,結(jié)果婚禮上仗岸,老公的妹妹穿的比我還像新娘。我一直安慰自己借笙,他們只是感情好扒怖,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著业稼,像睡著了一般盗痒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上低散,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天俯邓,我揣著相機與錄音骡楼,去河邊找鬼。 笑死看成,一個胖子當(dāng)著我的面吹牛君编,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播川慌,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼祠乃!你這毒婦竟也來了梦重?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤亮瓷,失蹤者是張志新(化名)和其女友劉穎琴拧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘱支,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡蚓胸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了除师。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片沛膳。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖汛聚,靈堂內(nèi)的尸體忽然破棺而出锹安,到底是詐尸還是另有隱情,我是刑警寧澤倚舀,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布叹哭,位于F島的核電站,受9級特大地震影響痕貌,放射性物質(zhì)發(fā)生泄漏风罩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一舵稠、第九天 我趴在偏房一處隱蔽的房頂上張望超升。 院中可真熱鬧,春花似錦柱查、人聲如沸廓俭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽研乒。三九已至,卻和暖如春淋硝,著一層夾襖步出監(jiān)牢的瞬間雹熬,已是汗流浹背宽菜。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留竿报,地道東北人铅乡。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像烈菌,于是被迫代替她去往敵國和親阵幸。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

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

  • 本節(jié)我們學(xué)習(xí)「常見流中的最后兩項:轉(zhuǎn)換流和隨意訪問文件流」~ 轉(zhuǎn)換流 InputStreamReader/Outp...
    全棧JAVA筆記閱讀 158評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法芽世,類相關(guān)的語法挚赊,內(nèi)部類的語法,繼承相關(guān)的語法济瓢,異常的語法荠割,線程的語...
    子非魚_t_閱讀 31,624評論 18 399
  • 一、 1旺矾、請用Java寫一個冒泡排序方法 【參考答案】 public static void Bubble(int...
    獨云閱讀 1,369評論 0 6
  • 1 IO(三)No20 1.1Properties 屬性集 【 Properties屬性集蔑鹦,主要用于操作配置屬...
    征程_Journey閱讀 893評論 0 1
  • 1 IONo18 1.1IO框架 【 IO:Input Output 在程序運行的過程中,可能需要對一些設(shè)備進...
    征程_Journey閱讀 960評論 0 1