2016.10.12 流操作的基本規(guī)律

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.OutputStreamWriter;

import java.io.UnsupportedEncodingException;

public class copyData {

/*流操作的基本規(guī)律

*最痛苦的就是流對(duì)象有很多像啼,不知道該用哪一個(gè)

*通過(guò)3個(gè)明確來(lái)完成

*1.明確源和目的? ? ? 源:輸入流。InputStream? Reader

*? ? ? ? ? ? ? ? 目的:輸出流 OutPutStream Writer

*2.操作的數(shù)據(jù)是否是純文本甚颂。

*? ? ? ? ? ? ? ? ? ? ? ? ? 是:字符流

*? ? ? ? ? ? ? ? ? ? ? ? 不是:字節(jié)流

*3.當(dāng)體系明確后蹭睡,在明確要使用那個(gè)具體的對(duì)象

*? 通過(guò)設(shè)備來(lái)進(jìn)行區(qū)分

*? ? 源設(shè)備:內(nèi)存? , 硬盤(pán)? 辫呻,鍵盤(pán)

*? ? 目的設(shè)備:內(nèi)存清钥,硬盤(pán),控制臺(tái)

/*需求1:

1.將一個(gè)文件中的數(shù)據(jù)存儲(chǔ)到另一個(gè)文件中? (復(fù)制文件)

源:因?yàn)槭窃? 祟昭,所以使用讀取流 怖侦。InputStream Reader

是操作文本文件搬葬,是所以選擇Reader

接下來(lái)明確要使用該體系中的那個(gè)對(duì)象,

明確設(shè)備:硬盤(pán)。上一個(gè)文件

Reader體系中可以操作文件的對(duì)象是FileReader

FileReader fr= new FileReader("a.txt");

是否需要提高效率? :是? 加入redear體系中緩沖區(qū) BufferedReader

BufferedReader bufr = new? BufferedReader(fr);

目的:OutputStream Writer

是否是純文本

設(shè)備:硬盤(pán)? 一個(gè)文件

Writer體系中可以操作文件的對(duì)象是Filewriter

FileWriter fw =? new FileWriter("a.txt");

是否需要提高效率? :是? 加入Writer體系中緩沖區(qū) BufferedWriter

BufferedWriter bufw= new? BufferedWriter(fw);

需求2:鍵盤(pán)錄入大的數(shù)據(jù)保存到一個(gè)文件中

這個(gè)需求源和目的都存在

那么分析

源:InputStream Reader

是不是純文本:是!? Reader

設(shè)備:鍵盤(pán)? 對(duì)應(yīng)的對(duì)象是system.in

不是選擇Reader么?System.in對(duì)應(yīng)的不是字節(jié)流么

為了操作鍵盤(pán)的文本數(shù)據(jù)方便歧沪。轉(zhuǎn)成字符流 按照字符串操作是最簡(jiǎn)單的

所以既然明確了Reader歹撒,那么就將system.in轉(zhuǎn)換成Reader

用了Reader體系 中轉(zhuǎn)換流 InputStreamReader

InputStreamReader isr = new InputStreamReader(System.in);

需要提高效率? 需要

BufferedReader bufr = new? BufferedReader(isr);

目的:OutputStream Wirtrer

是否純文本 :是? 用Writer

設(shè)備:硬盤(pán) 一個(gè)文件? 使用FileWriter

FileWriter fw = new FileWriter("");

需要提高效率? 需要

BufferedWriter buw = new BufferedWriter(fw);

*************************

擴(kuò)展一下 想要把錄入的數(shù)據(jù)按照指定的編碼表(utf—8)將數(shù)據(jù)存到文件中

目的:OutputStream Wirtrer

是否純文本 :是? 用Writer

設(shè)備:硬盤(pán) 一個(gè)文件? 使用FileWriter

但是FileWriter使用的默認(rèn)編碼表GBK

所以要使用轉(zhuǎn)換流 OutputStreamWriter

而該轉(zhuǎn)換流對(duì)象要接收一個(gè)字節(jié)輸出流,而且還可以操作的文件的字節(jié)輸出流。FileOutputStream

OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("a.txt"), "UTF-8");

需要提高效率? 需要

BufferedWriter buw = new BufferedWriter(osw);

注意:

記住轉(zhuǎn)換流什么時(shí)候使用迈着,字符和字節(jié)之間的橋梁竭望,通常,涉及到字符串轉(zhuǎn)換時(shí)

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

copyData_2();

}

//1.將一個(gè)文件中的數(shù)據(jù)存儲(chǔ)到另一個(gè)文件中? (復(fù)制文件)

static void copyData_1() {

// TODO Auto-generated method stub

}

//需求2:鍵盤(pán)錄入大的數(shù)據(jù)保存到一個(gè)文件中

//擴(kuò)展一下 想要把錄入的數(shù)據(jù)按照指定的編碼表(utf—8)將數(shù)據(jù)存到文件中

static void copyData_2() {

// TODO Auto-generated method stub

//new InputStreamReader(System.in)將字節(jié)流轉(zhuǎn)換為字符流

//鍵盤(pán)的最常見(jiàn)寫(xiě)法

BufferedReader bur = new BufferedReader(new InputStreamReader(System.in));

BufferedWriter buw = null;

try {

buw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("/Users/denmeiho/Desktop/a.txt"), "UTF-8"));

String line = null;

try {

while ((line = bur.readLine())!=null) {

buw.write(line);

buw.newLine();

buw.flush();

}

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

} catch (UnsupportedEncodingException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}finally {

try {

buw.close();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末裕菠,一起剝皮案震驚了整個(gè)濱河市咬清,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌奴潘,老刑警劉巖旧烧,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異画髓,居然都是意外死亡粪滤,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)雀扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)杖小,“玉大人,你說(shuō)我怎么就攤上這事愚墓∮枞ǎ” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵浪册,是天一觀的道長(zhǎng)扫腺。 經(jīng)常有香客問(wèn)我,道長(zhǎng)村象,這世上最難降的妖魔是什么笆环? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮厚者,結(jié)果婚禮上躁劣,老公的妹妹穿的比我還像新娘。我一直安慰自己库菲,他們只是感情好账忘,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著熙宇,像睡著了一般鳖擒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上烫止,一...
    開(kāi)封第一講書(shū)人閱讀 52,793評(píng)論 1 314
  • 那天蒋荚,我揣著相機(jī)與錄音,去河邊找鬼馆蠕。 笑死期升,一個(gè)胖子當(dāng)著我的面吹牛惊奇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播吓妆,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼赊时,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了行拢?” 一聲冷哼從身側(cè)響起祖秒,我...
    開(kāi)封第一講書(shū)人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舟奠,沒(méi)想到半個(gè)月后竭缝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沼瘫,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年抬纸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耿戚。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡湿故,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出膜蛔,到底是詐尸還是另有隱情坛猪,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布皂股,位于F島的核電站墅茉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏呜呐。R本人自食惡果不足惜就斤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蘑辑。 院中可真熱鬧洋机,春花似錦、人聲如沸以躯。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)忧设。三九已至,卻和暖如春颠通,著一層夾襖步出監(jiān)牢的瞬間址晕,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工顿锰, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留谨垃,地道東北人启搂。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像刘陶,于是被迫代替她去往敵國(guó)和親胳赌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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

  • 一匙隔、流的概念和作用疑苫。 流是一種有順序的,有起點(diǎn)和終點(diǎn)的字節(jié)集合纷责,是對(duì)數(shù)據(jù)傳輸?shù)目偝苫虺橄蠛床簟<磾?shù)據(jù)在兩設(shè)備之間的傳輸...
    布魯斯不吐絲閱讀 10,062評(píng)論 2 95
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法再膳,內(nèi)部類(lèi)的語(yǔ)法挺勿,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法喂柒,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,668評(píng)論 18 399
  • (一)Java部分 1不瓶、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,119評(píng)論 0 62
  • 一、 1灾杰、請(qǐng)用Java寫(xiě)一個(gè)冒泡排序方法 【參考答案】 public static void Bubble(int...
    獨(dú)云閱讀 1,387評(píng)論 0 6
  • 一蚊丐、用戶指標(biāo) 新增用戶(新用戶):第一次啟動(dòng)應(yīng)用的用戶(以設(shè)備為判斷標(biāo)準(zhǔn))數(shù)。 活躍用戶:?jiǎn)?dòng)過(guò)應(yīng)用的用戶(按照設(shè)...
    Smile竹_閱讀 944評(píng)論 0 1