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

java中的FileReader和FileWriter讀寫流

 更新時(shí)間:2023年10月16日 09:40:29   作者:Rnr_..  
這篇文章主要介紹了java中的FileReader和FileWriter讀寫流,在java中對(duì)數(shù)據(jù)輸入輸出的操作陳作為流我們對(duì)不同的文件進(jìn)行操作,或者對(duì)操作文件進(jìn)行輸入和輸出時(shí)所用的流都是不同的,因此在java.io的包下存在很多流的類或者接口提供給我們對(duì)應(yīng)的操作,需要的朋友可以參考下

FileReader和FileWriter讀寫流

在java中對(duì)數(shù)據(jù)輸入輸出的操作陳作為流 我們對(duì)不同的文件進(jìn)行操作,或者對(duì)操作文件進(jìn)行輸入和輸出時(shí)所用的流都是不同的。

因此在java.io的包下存在很多流的類或者接口提供給我們對(duì)應(yīng)的操作

流的原理:

  • 輸入流(input):將外部的文件通過流讀取到內(nèi)存中
  • 輸出流(output):將內(nèi)存中的文件通過流輸出到硬盤等儲(chǔ)存設(shè)備中

分類:

  • 按照操作單位分為;字節(jié)流,字符流
  • 按照流向不同分為;輸入流,輸出流
  • 按照角色不同分為;節(jié)點(diǎn)流,處理流

io流體系:

  • FileReader與FileWriter
  • FileReader是針對(duì)字符型文件(后綴.txt)的流,根據(jù)定義的不同也可以稱其為字符流,節(jié)點(diǎn)流,輸入流
  • FileWriter是針對(duì)是針對(duì)字符型文件(后綴.txt)的流,根據(jù)定義的不同也可以稱其為字符流,節(jié)點(diǎn)流,輸出流

FileReader的使用

1,實(shí)例化一個(gè)File類用與操作的對(duì)象

2,實(shí)例化一個(gè)FileReader類并且將file對(duì)象作為參數(shù)傳入它的構(gòu)造器中。

3,用FileReader的方法將數(shù)據(jù)讀入 FileReader讀入數(shù)據(jù)的方法是read()方法 —>read()的空參構(gòu)造器:返回讀入的一個(gè)字符并繼續(xù)往下讀如果讀到最后一個(gè)元素返回-1 —>read(char cbuf[])一次讀入cbuf中字符個(gè)元素的個(gè)數(shù)如果到達(dá)文件末尾返回-1

4,關(guān)閉流 close();方法流不會(huì)自動(dòng)關(guān)閉,必須手動(dòng)關(guān)閉,不然會(huì)浪費(fèi)資源

public class FileReaderAndFileWriter {
    public static void main(String[] args) {
        FileReader flr = null;
        try {
            File file = new File("hello.txt");
            flr = new FileReader(file);
            char[] cbuf = new char[2];
            int read = flr.read(cbuf);
            while (read != -1){
                for (int i = 0 ; i < read ; i++){
                    System.out.print(cbuf[i]);
                }
                read = flr.read(cbuf);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(flr != null){//防止空指針
                try {
                    flr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}

注:整個(gè)過程中文件會(huì)報(bào)錯(cuò),而我們需要使用try-catch-finally來解決該異常,如果使用throws的話中途拋出異常之后不會(huì)去執(zhí)行最后的close();方法 則該流不會(huì)關(guān)閉會(huì)浪費(fèi)資源

FileWriter的使用:FileWriter其實(shí)使用步驟和FileReader是一樣的

1,實(shí)例化一個(gè)File類

2,實(shí)例化一個(gè)FileWriter類并且將File的實(shí)例作為參數(shù)傳入FileWriter的構(gòu)造器中 —> new FileWriter(file,flase);默認(rèn)情況是flase; 修改原有文件的內(nèi)容改為添加的數(shù)據(jù) —>new FileWriter(file,true); 在原有文件的基礎(chǔ)上添加寫入的數(shù)據(jù)

3,使用write方法寫入數(shù)據(jù)到指定文件夾中 如果實(shí)例化的File類的file文件不存在會(huì)自動(dòng)添加 public void write(char cbuf[]) :一次寫入cbuf指定個(gè)數(shù)的數(shù)據(jù) public void write(char cbuf[], int off, int len):在傳入的cbuf數(shù)組中從off開始寫入,一次寫入len個(gè)數(shù)據(jù)

4,關(guān)閉FileWriter流:colse();方法

例’

public class FileReaderAndFileWriter {
    public static void main(String[] args) {

        FileWriter flw = null;
        try {
        //寫入的文件的文件夾名字
            File file = new File("hw.txt");
            flw = new FileWriter(file);
		//寫入的內(nèi)容
            flw.write("hello JAVA");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                flw.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

利用FileReader和FileWriter實(shí)現(xiàn)對(duì)文本文件的復(fù)制

public class FileReaderAndFileWriter {
    public static void main(String[] args){
        FileReader flr = null;
        FileWriter flw = null;
        try {
        //file是需要復(fù)制的文件,file1是要復(fù)制到的地方
            File file = new File("hello.txt");
            File file1 = new File("hw.txt");
            flr = new FileReader(file);
            flw = new FileWriter(file1);

            char[] cbuf = new char[5];
            int read = flr.read(cbuf);
            while (read != -1){
//                for(int i = 0; i < cbuf.length; i++){
//                    flw.write(cbuf, 0 , read);
//                }
                //如果要用write方法直接寫入的話需要使用下面三個(gè)參數(shù)的方法
                //否則會(huì)打印重復(fù)flw.write(cbuf);hello worldworl
                flw.write(cbuf, 0 , read);
                read = flr.read(cbuf);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(flr != null){
                try {
                    flr.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

            if(flw != null){
                try {
                    flw.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

到此這篇關(guān)于java中的FileReader和FileWriter讀寫流的文章就介紹到這了,更多相關(guān)FileReader和FileWriter讀寫流內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring ApplicationContext接口功能詳細(xì)介紹

    Spring ApplicationContext接口功能詳細(xì)介紹

    ApplicationContext是Spring應(yīng)用程序中的中央接口,由于繼承了多個(gè)組件,使得ApplicationContext擁有了許多Spring的核心功能,如獲取bean組件,注冊(cè)監(jiān)聽事件,加載資源文件等
    2023-02-02
  • Java中Calendar類的一些常用方法小結(jié)

    Java中Calendar類的一些常用方法小結(jié)

    項(xiàng)目當(dāng)中,我們經(jīng)常會(huì)涉及到對(duì)時(shí)間的處理,Date類最主要的作用就是獲得當(dāng)前時(shí)間,同時(shí)這個(gè)類里面也具有設(shè)置時(shí)間以及一些其他的功能,但更推薦使用 Calendar 類進(jìn)行時(shí)間和日期的處理,這篇文章主要給大家介紹了關(guān)于Java中Calendar類的一些常用方法,需要的朋友可以參考下
    2021-11-11
  • SpringCloud連接不上遠(yuǎn)程N(yùn)acos問題排查

    SpringCloud連接不上遠(yuǎn)程N(yùn)acos問題排查

    本文主要介紹了SpringCloud連接不上遠(yuǎn)程N(yùn)acos問題排查,可能是因?yàn)槲撮_放端口,或集群內(nèi)部通信異常等,下面就來介紹一下問題解決,感興趣的可以了解一下
    2024-06-06
  • idea更換jdk版本的完整步驟(附詳細(xì)圖文)

    idea更換jdk版本的完整步驟(附詳細(xì)圖文)

    idea很多地方都設(shè)置了jdk版本,不同模塊的jdk版本也可能不一樣,這篇文章主要介紹了idea更換jdk版本的完整步驟,通過文中介紹的步驟可以成功更換jdk版本,需要的朋友可以參考下
    2025-04-04
  • 深入理解Java三大特性中的多態(tài)

    深入理解Java三大特性中的多態(tài)

    多態(tài)性是對(duì)象多種表現(xiàn)形式的體現(xiàn)。在面向?qū)ο笾?,最常見的多態(tài)發(fā)生在使用父類的引用來引用子類的對(duì)象。下面這篇文章主要給大家深入的介紹了Java三大特性中多態(tài)的相關(guān)資料,有需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解

    SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解

    這篇文章主要介紹了SSM框架把日志信息保存到數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 解決SpringBoot內(nèi)嵌Tomcat并發(fā)容量的問題

    解決SpringBoot內(nèi)嵌Tomcat并發(fā)容量的問題

    這篇文章主要介紹了解決SpringBoot內(nèi)嵌Tomcat并發(fā)容量的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Java?Autowired注解深入分析

    Java?Autowired注解深入分析

    @Autowired注解是Spring中非常重要且常見的,接下來就簡(jiǎn)要的介紹一下它的用法。@Autowired默認(rèn)是通過set方法,按照類型自動(dòng)裝配JavaBean,set方法可省略不寫,它主要是修飾在成員變量上
    2023-01-01
  • Java如何判斷一個(gè)url是否有效

    Java如何判斷一個(gè)url是否有效

    URL類提供了一個(gè)openConnection()方法,可以打開一個(gè)連接并返回一個(gè)URLConnection對(duì)象,該對(duì)象可以用來檢查連接是否有效,這篇文章主要介紹了Java判斷一個(gè)url是否有效,需要的朋友可以參考下
    2023-09-09
  • SpringBoot集成ip2region實(shí)現(xiàn)ip白名單的代碼示例

    SpringBoot集成ip2region實(shí)現(xiàn)ip白名單的代碼示例

    ip2region v2.0 - 是一個(gè)離線IP地址定位庫和IP定位數(shù)據(jù)管理框架,10微秒級(jí)別的查詢效率,提供了眾多主流編程語言的 xdb 數(shù)據(jù)生成和查詢客戶端實(shí)現(xiàn),本文介紹了SpringBoot集成ip2region實(shí)現(xiàn)ip白名單的代碼工程,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

西和县| 涡阳县| 上饶市| 北海市| 从江县| 大厂| 岗巴县| 亚东县| 黄石市| 建湖县| 博客| 普格县| 漳浦县| 高青县| 铁力市| 革吉县| 建瓯市| 汉中市| 射洪县| 桦甸市| 屏山县| 东乌珠穆沁旗| 乌什县| 濮阳市| 留坝县| 大庆市| 固始县| 仲巴县| 收藏| 长垣县| 托克逊县| 金山区| 驻马店市| 岑巩县| 镇沅| 鸡西市| 台前县| 连州市| 平武县| 加查县| 太白县|