欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA.io讀寫文件方式匯總

 更新時(shí)間:2020年06月05日 08:46:31   作者:小不點(diǎn)丶  
這篇文章主要介紹了幾種JAVA.io讀寫文件方式,文中代碼非常詳細(xì),幫助大家更好的理解學(xué)習(xí),感興趣的朋友可以了解下

一、Java把這些不同來源和目標(biāo)的數(shù)據(jù)都統(tǒng)一抽象為數(shù)據(jù)流。

  Java語言的輸入輸出功能是十分強(qiáng)大而靈活的。

  在Java類庫中,IO部分的內(nèi)容是很龐大的,因?yàn)樗婕暗念I(lǐng)域很廣泛:標(biāo)準(zhǔn)輸入輸出,文件的操作,網(wǎng)絡(luò)上的數(shù)據(jù)流,字符串流,對(duì)象流,zip文件流。

  這里介紹幾種讀寫文件的方式

二、InputStream、OutputStream(字節(jié)流)

//讀取文件(字節(jié)流)
    InputStream in = new FileInputStream("d:\\1.txt");
    //寫入相應(yīng)的文件
    OutputStream out = new FileOutputStream("d:\\2.txt");
    //讀取數(shù)據(jù)
    //一次性取多少字節(jié)
    byte[] bytes = new byte[2048];
    //接受讀取的內(nèi)容(n就代表的相關(guān)數(shù)據(jù),只不過是數(shù)字的形式)
    int n = -1;
    //循環(huán)取出數(shù)據(jù)
    while ((n = in.read(bytes,0,bytes.length)) != -1) {
      //轉(zhuǎn)換成字符串
      String str = new String(bytes,0,n,"GBK"); #這里可以實(shí)現(xiàn)字節(jié)到字符串的轉(zhuǎn)換,比較實(shí)用
      System.out.println(str);
      //寫入相關(guān)文件
      out.write(bytes, 0, n);
    }
    //關(guān)閉流
    in.close();
    out.close();

三、BufferedInputStream、BufferedOutputStream(緩存字節(jié)流)使用方式和字節(jié)流差不多,但是效率更高(推薦使用)

//讀取文件(緩存字節(jié)流)
    BufferedInputStream in = new BufferedInputStream(new FileInputStream("d:\\1.txt"));
    //寫入相應(yīng)的文件
    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream("d:\\2.txt"));
    //讀取數(shù)據(jù)
    //一次性取多少字節(jié)
    byte[] bytes = new byte[2048];
    //接受讀取的內(nèi)容(n就代表的相關(guān)數(shù)據(jù),只不過是數(shù)字的形式)
    int n = -1;
    //循環(huán)取出數(shù)據(jù)
    while ((n = in.read(bytes,0,bytes.length)) != -1) {
      //轉(zhuǎn)換成字符串
      String str = new String(bytes,0,n,"GBK");
      System.out.println(str);
      //寫入相關(guān)文件
      out.write(bytes, 0, n);
    }
    //清楚緩存
    out.flush();
    //關(guān)閉流
    in.close();
    out.close();

四、InputStreamReader、OutputStreamWriter(字節(jié)流,這種方式不建議使用,不能直接字節(jié)長度讀寫)。使用范圍用做字符轉(zhuǎn)換

//讀取文件(字節(jié)流)
    InputStreamReader in = new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK");
    //寫入相應(yīng)的文件
    OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("d:\\2.txt"));
    //讀取數(shù)據(jù)
    //循環(huán)取出數(shù)據(jù)
    byte[] bytes = new byte[1024];
    int len = -1;
    while ((len = in.read()) != -1) {
      System.out.println(len);
      //寫入相關(guān)文件
      out.write(len);
    }
    //清楚緩存
    out.flush();
    //關(guān)閉流
    in.close();
    out.close();

五、BufferedReader、BufferedWriter(緩存流,提供readLine方法讀取一行文本)

//讀取文件(字符流)
    BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK"));#這里主要是涉及中文
    //BufferedReader in = new BufferedReader(new FileReader("d:\\1.txt")));
    //寫入相應(yīng)的文件
    BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("d:\\2.txt"),"GBK"));
    //BufferedWriter out = new BufferedWriter(new FileWriter("d:\\2.txt"));
    //讀取數(shù)據(jù)
    //循環(huán)取出數(shù)據(jù)
    String str = null;
    while ((str = in.readLine()) != null) {
      System.out.println(str);
      //寫入相關(guān)文件
      out.write(str);
      out.newLine();
    }
    
    //清楚緩存
    out.flush();
    //關(guān)閉流
    in.close();
    out.close();

六、Reader、PrintWriter(PrintWriter這個(gè)很好用,在寫數(shù)據(jù)的同事可以格式化)

//讀取文件(字節(jié)流)
    Reader in = new InputStreamReader(new FileInputStream("d:\\1.txt"),"GBK");
    //寫入相應(yīng)的文件
    PrintWriter out = new PrintWriter(new FileWriter("d:\\2.txt"));
    //讀取數(shù)據(jù)
    //循環(huán)取出數(shù)據(jù)
    byte[] bytes = new byte[1024];
    int len = -1;
    while ((len = in.read()) != -1) {
      System.out.println(len);
      //寫入相關(guān)文件
      out.write(len);
    }
    //清楚緩存
    out.flush();
    //關(guān)閉流
    in.close();
    out.close();

七、基本的幾種用法就這么多,當(dāng)然每一個(gè)讀寫的使用都是可以分開的。為了更好的來使用io。流里面的讀寫,建議使用BufferedInputStream、BufferedOutputStream

以上就是JAVA.io讀寫文件方式匯總的詳細(xì)內(nèi)容,更多關(guān)于JAVA.io讀寫文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • RabbitMQ中的channel信道、exchange交換機(jī)和queue隊(duì)列詳解

    RabbitMQ中的channel信道、exchange交換機(jī)和queue隊(duì)列詳解

    這篇文章主要介紹了RabbitMQ中的channel信道、exchange交換機(jī)和queue隊(duì)列詳解,connection是指物理的連接,一個(gè)client與一個(gè)server之間有一個(gè)連接,一個(gè)連接上可以建立多個(gè)channel,可以理解為邏輯上的連接,需要的朋友可以參考下
    2023-08-08
  • springboot如何自定義properties文件

    springboot如何自定義properties文件

    這篇文章主要介紹了springboot如何自定義properties文件,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-06-06
  • Java注解的Retention和RetentionPolicy實(shí)例分析

    Java注解的Retention和RetentionPolicy實(shí)例分析

    這篇文章主要介紹了Java注解的Retention和RetentionPolicy,結(jié)合實(shí)例形式分析了Java注解Retention和RetentionPolicy的基本功能及使用方法,需要的朋友可以參考下
    2019-09-09
  • Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解

    Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解

    這篇文章主要介紹了Java 使用IO流實(shí)現(xiàn)大文件的分割與合并實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Java常用類之日期相關(guān)類使用詳解

    Java常用類之日期相關(guān)類使用詳解

    這篇文章主要為大家介紹了Java中常用類的日期相關(guān)類的用法教程,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Java有一定的幫助,需要的可以參考一下
    2022-08-08
  • SpringBoot的API文檔生成工具SpringDoc使用詳解

    SpringBoot的API文檔生成工具SpringDoc使用詳解

    這篇文章主要為大家介紹了SpringBoot的API文檔生成工具SpringDoc使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • 一文詳解Java對(duì)象的序列化和反序列化

    一文詳解Java對(duì)象的序列化和反序列化

    本文主要介紹了一文詳解Java對(duì)象的序列化和反序列化,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • SpringBoot+MyBatis+AOP實(shí)現(xiàn)讀寫分離的示例代碼

    SpringBoot+MyBatis+AOP實(shí)現(xiàn)讀寫分離的示例代碼

    高并發(fā)這個(gè)階段,肯定是需要做MySQL讀寫分離的。本文主要介紹了SpringBoot+MyBatis+AOP實(shí)現(xiàn)讀寫分離的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • 在lambda的foreach遍歷中break退出操作(lambda foreach break)

    在lambda的foreach遍歷中break退出操作(lambda foreach break)

    這篇文章主要介紹了在lambda的foreach遍歷中break退出操作(lambda foreach break),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • SpringMVC項(xiàng)目異常處理機(jī)制詳解

    SpringMVC項(xiàng)目異常處理機(jī)制詳解

    SpringMVC是一種基于Java,實(shí)現(xiàn)了Web MVC設(shè)計(jì)模式,請(qǐng)求驅(qū)動(dòng)類型的輕量級(jí)Web框架,即使用了MVC架構(gòu)模式的思想,將Web層進(jìn)行職責(zé)解耦?;谡?qǐng)求驅(qū)動(dòng)指的就是使用請(qǐng)求-響應(yīng)模型,框架的目的就是幫助我們簡化開發(fā),SpringMVC也是要簡化我們?nèi)粘eb開發(fā)
    2022-08-08

最新評(píng)論