最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 超詳細(xì)講解IO操作字節(jié)流與字符流

 更新時間:2022年03月25日 16:28:42   作者:桃花鍵神  
本章具體介紹了字節(jié)流、字符流的基本使用方法,圖解穿插代碼實現(xiàn)。 JAVA從基礎(chǔ)開始講,后續(xù)會講到JAVA高級,中間會穿插面試題和項目實戰(zhàn),希望能給大家?guī)韼椭?/div>

IO操作

image-20210118103556888

字節(jié)流

  • java.io.InputStream 輸入流,主要是用來讀取文件內(nèi)容的。
  • java.io.OutputStream 輸出流,主要是用來將內(nèi)容字節(jié)寫入文件的。

FileInputStream

該流用于從文件讀取數(shù)據(jù),它的對象可以用關(guān)鍵字 new 來創(chuàng)建。

有多種構(gòu)造方法可用來創(chuàng)建對象。

可以使用字符串類型的文件名來創(chuàng)建一個輸入流對象來讀取文件

InputStream f = new FileInputStream("D:/hello");

也可以使用一個文件對象來創(chuàng)建一個輸入流對象來讀取文件。我們首先得使用 File() 方法來創(chuàng)建一個文件對象:

File f = new File("D:/hello");
InputStream in = new FileInputStream(f);

FileOutputStream

該類用來創(chuàng)建一個文件并向文件中寫數(shù)據(jù)。

如果該流在打開文件進(jìn)行輸出前,目標(biāo)文件不存在,那么該流會創(chuàng)建該文件。

有兩個構(gòu)造方法可以用來創(chuàng)建 FileOutputStream 對象。

使用字符串類型的文件名來創(chuàng)建一個輸出流對象:

OutputStream f = new FileOutputStream("D:/hello");

也可以使用一個文件對象來創(chuàng)建一個輸出流來寫文件。我們首先得使用File()方法來創(chuàng)建一個文件對象:

File f = new File("D:/hello");
OutputStream fOut = new FileOutputStream(f);

字節(jié)流讀寫案例

讀取D:/hello.txt文件中的內(nèi)容再輸入到文件D:/test.txt中

      public class Mk {
        public static void main(String[] args) throws IOException {
            File file=new File("D://hello.txt");
            File file1= new File("D://test.txt");
            InputStream is=new FileInputStream(file);
            OutputStream out=new FileOutputStream(file1);
            //定義byte數(shù)組用來暫存數(shù)據(jù)
            byte[] buf = new byte[1024];
            //讀取Is中的內(nèi)容存到buf
            is.read(buf);
            //將buf中的內(nèi)容寫入out
            out.write(buf);
            is.close();
            out.close();
        }
        }

字符流

FileReader

寫入文件實例

public class A {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("user.txt", true);
        fw.write("你好中國1");
        fw.write("你好中國2");
        fw.write("你好中國3");
        fw.close();
    }
}

FileWriter

讀取文件實例

這里我把內(nèi)容換行了

br.ready()是判斷這一行流是否為空

br.readLine()是輸出一行,然后自動光標(biāo)指到下一行。

public class A {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new FileReader("user.txt"));
        while (br.ready()) {
            System.out.println(br.readLine());
        }
        br.close();
    }
}

字節(jié)流與字符流的區(qū)別

字節(jié)流和字符流使用是非常相似的,那么除了操作代碼的不同之外,還有哪些不同呢?

字節(jié)流在操作的時候本身是不會用到緩沖區(qū)(內(nèi)存)的,是與文件本身直接操作的,而字符流在操作的時候是使用到緩沖區(qū)的 字節(jié)流在操作文件時,即使不關(guān)閉資源(close方法),文件也能輸出,但是如果字符流不使用close方法的話,則不會輸出任何內(nèi)容,說明字符流用的是緩沖區(qū),并且可以使用flush方法強(qiáng)制進(jìn)行刷新緩沖區(qū),這時才能在不close的情況下輸出內(nèi)容

那開發(fā)中究竟用字節(jié)流好還是用字符流好呢?

在所有的硬盤上保存文件或進(jìn)行傳輸?shù)臅r候都是以字節(jié)的方法進(jìn)行的,包括圖片也是按字節(jié)完成,而字符是只有在內(nèi)存中才會形成的,所以使用字節(jié)的操作是最多的。 如果要java程序?qū)崿F(xiàn)一個拷貝功能,應(yīng)該選用字節(jié)流進(jìn)行操作(可能拷貝的是圖片),并且采用邊讀邊寫的方式(節(jié)省內(nèi)存)。

到此這篇關(guān)于Java 超詳細(xì)講解IO操作字節(jié)流與字符流的文章就介紹到這了,更多相關(guān)Java IO操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • idea生成WebServices接口的完整流程步驟

    idea生成WebServices接口的完整流程步驟

    因為工作需要,數(shù)據(jù)傳輸部分需要使用webservice實現(xiàn),經(jīng)過兩天的研究,實現(xiàn)了一個簡單的例子,這篇文章主要給大家介紹了關(guān)于idea生成WebServices接口的完整流程步驟,需要的朋友可以參考下
    2024-08-08
  • Java?Optional用法面試題精講

    Java?Optional用法面試題精講

    這篇文章主要為大家介紹了Java?Optional用法面試題精講,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • Android仿微信實現(xiàn)左滑顯示刪除按鈕功能

    Android仿微信實現(xiàn)左滑顯示刪除按鈕功能

    這篇文章主要為大家詳細(xì)介紹了java仿微信實現(xiàn)左滑顯示刪除按鈕功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 詳解netty中常用的xml編碼解碼器

    詳解netty中常用的xml編碼解碼器

    這篇文章主要介紹了netty中常用的xml編碼解碼器,進(jìn)行frame拆分可以使用XmlFrameDecoder,進(jìn)行xml文件內(nèi)容的解析則可以使用XmlDecoder,接下來我們會詳細(xì)講解兩個decoder實現(xiàn)和使用,感興趣的朋友一起看看吧
    2022-05-05
  • mybatis簡單resultMap使用詳解

    mybatis簡單resultMap使用詳解

    resultMap是Mybatis最強(qiáng)大的元素,它可以將查詢到的復(fù)雜數(shù)據(jù)(比如查詢到幾個表中數(shù)據(jù))映射到一個結(jié)果集當(dāng)中。這篇文章主要介紹了mybatis簡單resultMap使用詳解的相關(guān)資料,需要的朋友可以參考下
    2021-04-04
  • Mybatis中如何映射mysql中的JSON字段

    Mybatis中如何映射mysql中的JSON字段

    在mapper.xml中,需要在字段映射時加入typeHandler,具體:<id?property="abnormalEigenList"?column="AbnormalEigen"?typeHandler="com.xxx.config.JsonHandler">,下面通過本文給大家介紹Mybatis中,映射mysql中的JSON字段,需要的朋友可以參考下
    2023-10-10
  • Java Adapter 適配器模式(類適配器,對象適配器)優(yōu)缺點對比

    Java Adapter 適配器模式(類適配器,對象適配器)優(yōu)缺點對比

    這篇文章主要介紹了Java 適配器模式(類適配器,對象適配器)優(yōu)缺點對比的相關(guān)資料,java 適配器在基礎(chǔ)知識中還是比較重要的,這里就說下如何使用,需要的朋友可以參考下
    2016-12-12
  • SpringBoot 注解事務(wù)聲明式事務(wù)的方式

    SpringBoot 注解事務(wù)聲明式事務(wù)的方式

    springboot使用上述注解的幾種方式開啟事物,可以達(dá)到和xml中聲明的同樣效果,但是卻告別了xml,使你的代碼遠(yuǎn)離配置文件。今天就扒一扒springboot中事務(wù)使用注解的玩法,感興趣的朋友一起看看吧
    2017-09-09
  • SpringBoot集成JWT實現(xiàn)Token登錄驗證的示例代碼

    SpringBoot集成JWT實現(xiàn)Token登錄驗證的示例代碼

    隨著技術(shù)的發(fā)展,分布式web應(yīng)用的普及,通過session管理用戶登錄狀態(tài)成本越來越高,因此慢慢發(fā)展成為token的方式做登錄身份校驗,本文就來介紹一下SpringBoot集成JWT實現(xiàn)Token登錄驗證的示例代碼,感興趣的可以了解一下
    2023-12-12
  • Java使用CompletableFuture進(jìn)行非阻塞IO詳解

    Java使用CompletableFuture進(jìn)行非阻塞IO詳解

    這篇文章主要介紹了Java使用CompletableFuture進(jìn)行非阻塞IO詳解,CompletableFuture是Java中的一個類,用于支持異步編程和處理異步任務(wù)的結(jié)果,它提供了一種方便的方式來處理異步操作,并允許我們以非阻塞的方式執(zhí)行任務(wù),需要的朋友可以參考下
    2023-09-09

最新評論

庆阳市| 繁峙县| 土默特左旗| 洪湖市| 德庆县| 南岸区| 新龙县| 和田县| 普宁市| 阜新市| 中超| 方正县| 涟源市| 德保县| 辽中县| 神农架林区| 蒙山县| 汝南县| 阿巴嘎旗| 友谊县| 普宁市| 镇康县| 邢台县| 孟村| 沅陵县| 汕尾市| 东源县| 湄潭县| 六盘水市| 汝阳县| 金塔县| 伊吾县| 太和县| 永福县| 龙州县| 抚松县| 栾城县| 侯马市| 个旧市| 郁南县| 乌苏市|