国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[測(cè)試]javaIO寫入文件效率——幾種方法比較

2019-11-14 15:26:27
字體:
供稿:網(wǎng)友

各類寫入方法

/** *1 按字節(jié)寫入 FileOutputStream *  * @param count 寫入循環(huán)次數(shù) * @param str 寫入字符串 */public void outputStreamTest(int count, String str) {    File f = new File("f:test1.txt");    OutputStream os = null;    try {        os = new FileOutputStream(f);        for (int i = 0; i < count; i++) {            os.write(str.getBytes());        }        os.flush();        System.out. f.length());    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    } finally {        try {            os.close();        } catch (IOException e) {            e.printStackTrace();        }    }}/** *2 按字節(jié)緩沖寫入 BufferedOutputStream *  * @param count 寫入循環(huán)次數(shù) * @param str 寫入字符串 */public void bufferedOutputTest(int count, String str) {    File f = new File("f:test2.txt");    BufferedOutputStream bos = null;    try {        OutputStream os = new FileOutputStream(f);        bos = new BufferedOutputStream(os);        for (int i = 0; i < count; i++) {            bos.write(str.getBytes());        }        bos.flush();    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    } finally {        try {            bos.close();        } catch (IOException e) {            e.printStackTrace();        }    }} /** *3 按字符寫入 FileWriter *  * @param count 寫入循環(huán)次數(shù) * @param str 寫入字符串 */public void fileWriteTest(int count, String str) {    File f = new File("f:test.txt");    Writer writer = null;    try {        writer = new FileWriter(f);        for (int i = 0; i < count; i++) {            writer.write(str);        }        writer.flush();    } catch (IOException e) {        e.printStackTrace();    } finally {        try {            writer.close();        } catch (Exception e) {            e.printStackTrace();        }    }}/** *4 按字符緩沖寫入 BufferedWriter *  * @param count 寫入循環(huán)次數(shù) * @param str 寫入字符串 */public void bufferedWriteTest(int count, String str) {    File f = new File("f:test3.txt");    OutputStreamWriter writer = null;    BufferedWriter bw = null;    try {        OutputStream os = new FileOutputStream(f);        writer = new OutputStreamWriter(os);        bw = new BufferedWriter(writer);        for (int i = 0; i < count; i++) {            bw.write(str);        }        bw.flush();        if(f.exists()){            f.delete();        }    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    } finally {        try {            bw.close();        } catch (IOException e) {            e.printStackTrace();        }    }} /** *5 按字符緩沖寫入 BufferedWriter and BufferedOutputStream *  * @param count 寫入循環(huán)次數(shù) * @param str 寫入字符串 */public void bufferedWriteAndBufferedOutputStreamTest(int count, String str) {    File f = new File("f:test4.txt");    BufferedOutputStream bos=null;    OutputStreamWriter writer = null;    BufferedWriter bw = null;    try {        OutputStream os = new FileOutputStream(f);        bos=new BufferedOutputStream(os);        writer = new OutputStreamWriter(bos);        bw = new BufferedWriter(writer);        for (int i = 0; i < count; i++) {            bw.write(str);        }        bw.flush();        if(f.exists()){            f.delete();            System.out.println("delete---");        }    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    } finally {        try {            bw.close();        } catch (IOException e) {            e.printStackTrace();        }    }}/** *6 按字符緩沖寫入 BufferedWriter and FileWriter *  * @param count 寫入循環(huán)次數(shù) * @param str 寫入字符串 */public void bufferedWriteAndFileWriterTest(int count, String str) {    File f = new File("f:test5.txt");    FileWriter fw=null;    BufferedWriter bw = null;    try {        fw=new FileWriter(f);         bw = new BufferedWriter(fw);        for (int i = 0; i < count; i++) {            bw.write(str);        }        bw.flush();    } catch (FileNotFoundException e) {        e.printStackTrace();    } catch (IOException e) {        e.printStackTrace();    } finally {        try {            bw.close();            if(f.exists()){                f.delete();            }        } catch (IOException e) {            e.printStackTrace();        }    }}

 

測(cè)試寫入類

 

測(cè)試結(jié)果


總結(jié):

如果按字符和字節(jié)來分類,除方法1和2,其余都是按字符寫入文件,字符寫入一般比字節(jié)快;看java API可知,F(xiàn)ileWriter的父類就是OutputStreamWriter,他倆都是實(shí)現(xiàn)Writer類,從這點(diǎn)上來說,方法4和6幾乎沒區(qū)別,時(shí)間有些微的差別,但內(nèi)部機(jī)制是一樣的。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘德县| 大兴区| 沿河| 临泽县| 宜章县| 襄樊市| 梅州市| 丰镇市| 台北市| 崇州市| 饶阳县| 菏泽市| 阿荣旗| 武川县| 枝江市| 高州市| 新兴县| 松潘县| 江津市| 驻马店市| 阳朔县| 白山市| 新乐市| 石门县| 怀柔区| 福州市| 康乐县| 南康市| 沐川县| 泽普县| 和硕县| 永吉县| 高清| 林周县| 太谷县| 古浪县| 德格县| 台北市| 襄城县| 黄龙县| 呼伦贝尔市|