亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java中的FileReader和FileWriter讀寫流

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

FileReader和FileWriter讀寫流

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

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

流的原理:

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

分類:

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

io流體系:

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

FileReader的使用

1,實例化一個File類用與操作的對象

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

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

4,關(guān)閉流 close();方法流不會自動關(guān)閉,必須手動關(guān)閉,不然會浪費資源

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();
                }
            }
        }

    }
}

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

FileWriter的使用:FileWriter其實使用步驟和FileReader是一樣的

1,實例化一個File類

2,實例化一個FileWriter類并且將File的實例作為參數(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ù)到指定文件夾中 如果實例化的File類的file文件不存在會自動添加 public void write(char cbuf[]) :一次寫入cbuf指定個數(shù)的數(shù)據(jù) public void write(char cbuf[], int off, int len):在傳入的cbuf數(shù)組中從off開始寫入,一次寫入len個數(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實現(xiàn)對文本文件的復(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方法直接寫入的話需要使用下面三個參數(shù)的方法
                //否則會打印重復(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 數(shù)組在java中的擴(kuò)容的實例方法

    數(shù)組在java中的擴(kuò)容的實例方法

    在本篇文章里小編給大家分享的是一篇關(guān)于數(shù)組在java中的擴(kuò)容的實例方法內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • springboot 防止重復(fù)請求防止重復(fù)點擊的操作

    springboot 防止重復(fù)請求防止重復(fù)點擊的操作

    這篇文章主要介紹了springboot 防止重復(fù)請求防止重復(fù)點擊的操作,URL 攔截器可以使用 spring 攔截器,但使用 spring,每個需要過濾的新 URL 都需要添加配置,因此這里使用 AOP 注解 的形式來實現(xiàn),結(jié)合實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • springboot+springmvc+mybatis項目整合

    springboot+springmvc+mybatis項目整合

    這篇文章主要為大家詳細(xì)介紹了springboot+springmvc+mybatis項目的整合,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • servlet之ServletContext簡介_動力節(jié)點Java學(xué)院整理

    servlet之ServletContext簡介_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了servlet之ServletContext簡介,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java如何接收并解析HL7協(xié)議數(shù)據(jù)

    Java如何接收并解析HL7協(xié)議數(shù)據(jù)

    文章主要介紹了HL7協(xié)議及其在醫(yī)療行業(yè)中的應(yīng)用,詳細(xì)描述了如何配置環(huán)境、接收和解析數(shù)據(jù),以及與前端進(jìn)行交互的實現(xiàn)方法,文章還分享了使用7Edit工具進(jìn)行調(diào)試的經(jīng)驗,并記錄了一個常見的解析問題及其解決方法
    2024-12-12
  • 解決Springboot項目中很多頁面出現(xiàn)Whitelabel Error Page(404)的問題

    解決Springboot項目中很多頁面出現(xiàn)Whitelabel Error Page(404)的問題

    最近在接手的前后端項目中發(fā)現(xiàn)其默認(rèn)路徑不是主機(jī)+端口(如:http://localhost:3453/)的形式,很多頁面的訪問是加了一個層級,只要訪問頁面就會出現(xiàn)Whitelabel Error Page(404),所以本文給大家提供了解決方案,需要的朋友可以參考下
    2024-02-02
  • mybatis plus in使用時傳數(shù)組、集合的注意點說明

    mybatis plus in使用時傳數(shù)組、集合的注意點說明

    這篇文章主要介紹了mybatis plus in使用時傳數(shù)組、集合的注意點說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 深入探究SpringBoot攔截器的自定義設(shè)計與實現(xiàn)全攻略

    深入探究SpringBoot攔截器的自定義設(shè)計與實現(xiàn)全攻略

    攔截器是Spring框架提供的核心功能之?,主要用來攔截用戶的請求,在指定方法前后,根據(jù)業(yè)務(wù)需要執(zhí)行預(yù)先設(shè)定的代碼,本文將給大家和大家一起深入探究SpringBoot攔截器的自定義設(shè)計與實現(xiàn),需要的朋友可以參考下
    2024-05-05
  • spring.factories文件的解析源碼API機(jī)制詳解

    spring.factories文件的解析源碼API機(jī)制詳解

    通過本文深入探討Spring?Boot的背景歷史、業(yè)務(wù)場景、功能點以及底層原理,使讀者對Spring?Boot有了更深入的了解,結(jié)合實例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Java多線程之volatile關(guān)鍵字及內(nèi)存屏障實例解析

    Java多線程之volatile關(guān)鍵字及內(nèi)存屏障實例解析

    volatile是JVM提供的一種最輕量級的同步機(jī)制,因為Java內(nèi)存模型為volatile定義特殊的訪問規(guī)則,使其可以實現(xiàn)Java內(nèi)存模型中的兩大特性:可見性和有序性。這篇文章主要介紹了Java多線程之volatile關(guān)鍵字及內(nèi)存屏障,需要的朋友可以參考下
    2019-05-05

最新評論