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

Java字符流和字節(jié)流對(duì)文件操作的區(qū)別

 更新時(shí)間:2016年10月22日 14:18:23   作者:Dreamlove  
本篇文章主要介紹了Java的IO流分為字符流(Reader,Writer)和字節(jié)流(InputStream,OutputStream),字節(jié)流顧名思義字節(jié)流就是將文件的內(nèi)容讀取到字節(jié)數(shù)組,對(duì)初學(xué)者很有用,有需要的朋友可以了解一下。

記得當(dāng)初自己剛開(kāi)始學(xué)習(xí)Java的時(shí)候,對(duì)Java的IO流這一塊特別不明白,所以寫(xiě)了這篇隨筆希望能對(duì)剛開(kāi)始學(xué)習(xí)Java的人有所幫助,也方便以后自己查詢。Java的IO流分為字符流(Reader,Writer)和字節(jié)流(InputStream,OutputStream),字節(jié)流顧名思義字節(jié)流就是將文件的內(nèi)容讀取到字節(jié)數(shù)組,然后再輸出到另一個(gè)文件中。而字符流操作的最小單位則是字符??梢韵瓤匆幌拢桑狭鞯母攀觯?br />

 

下面首先是通過(guò)字符流對(duì)文件進(jìn)行讀取和寫(xiě)入:

package lib;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

public class Test {
  // 定義文件路徑
  File f = new File("F:\\test.txt");
  //字符流寫(xiě)入的方法
  public String writeInFile() throws IOException{
    String str = "";
    String count = "";
    try {
      // 使用字符流對(duì)文件進(jìn)行讀取
      BufferedReader bf = new BufferedReader(new FileReader(f));
      while (true) {
        //讀取每一行數(shù)據(jù)并將其賦值給str
        if ((count = bf.readLine()) != null) {
          str += count;
        } else {
          break;
        }
      }
      // 關(guān)閉流
      bf.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
    return str;
  }
  //字符流讀取的方法
  public void getReader(){
    try {
      //其中true表示在原本文件內(nèi)容的尾部添加,若不寫(xiě)則表示清空文件后再添加內(nèi)容
      PrintWriter pw=new PrintWriter(new FileWriter(f,true));
      pw.write("測(cè)試輸入字符串到文件中2");
      pw.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) throws IOException {
    Test test=new Test();
    //將字符串輸入到文件中
    test.getReader();
    //讀取相對(duì)應(yīng)的字符串
    String str=test.writeInFile();
    //將文件中內(nèi)容在控制臺(tái)輸出
    System.out.println("文件內(nèi)容為:"+str);
  }
}

上述代碼的關(guān)鍵地方都有注釋,就不再一一贅述了,主要就是在使用完流之后不要忘記關(guān)閉就好

然后是通過(guò)字節(jié)流的方式對(duì)文件進(jìn)行操作,將一個(gè)文件中的內(nèi)容復(fù)制到另一個(gè)文件中:

package com.file.test2;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestFile2 {
  //使用字節(jié)流讀取并寫(xiě)入文件,將一個(gè)文件復(fù)制到另一個(gè)文件中
  public static void main(String[] args) throws IOException {
    //要復(fù)制的源文件
    File f=new File("D:\\test.txt");
    //目標(biāo)文件
    File f2=new File("D:\\test2.txt");
    //定義一個(gè)byte類型的數(shù)組,用于存儲(chǔ)讀取到的內(nèi)容
    byte [] b=new byte[1024];
    int length;
    try {
      //定義讀取的流
      FileInputStream in=new FileInputStream(f);
      //定義輸出到文件的流
      FileOutputStream out=new FileOutputStream(f2);
      //將文件內(nèi)容輸出到另一個(gè)文件中
      while((length=in.read(b))!=-1){
        out.write(b, 0, length);
      }
      out.close();
      in.close();
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    }
  }
}

在字節(jié)流的操作中,第13行的源文件必須存在,可以根據(jù)需要自行更改文件路徑,只需要存在即可,否則會(huì)報(bào)文件找不到的錯(cuò)誤,同時(shí)若想在控制臺(tái)輸出讀取到的字節(jié)流的內(nèi)容則可以在第27和28行之間加兩句代碼:in.read(b, 0, b.length);System.out.println(new String(b));

以上就是字符流和字節(jié)流的相關(guān)操作,其實(shí)代碼不難,主要是自己的理解,相同的問(wèn)題每個(gè)人都會(huì)有不同的理解方式,當(dāng)然,對(duì)于我們編程人員來(lái)說(shuō),除了要多思考之外還要多動(dòng)手。最后希望以上內(nèi)容能對(duì)大家有所幫助,也請(qǐng)繼續(xù)支持本站。

相關(guān)文章

  • springboot與dubbo的版本匹配問(wèn)題

    springboot與dubbo的版本匹配問(wèn)題

    這篇文章主要介紹了springboot與dubbo的版本匹配問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring Boot集成mongodb數(shù)據(jù)庫(kù)過(guò)程解析

    Spring Boot集成mongodb數(shù)據(jù)庫(kù)過(guò)程解析

    這篇文章主要介紹了Spring Boot集成mongodb數(shù)據(jù)庫(kù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Hibernate核心類和接口的詳細(xì)介紹

    Hibernate核心類和接口的詳細(xì)介紹

    今天小編就為大家分享一篇關(guān)于Hibernate核心類和接口的詳細(xì)介紹,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • java 文件上傳(單文件與多文件)

    java 文件上傳(單文件與多文件)

    這篇文章主要介紹了java 文件上傳(單文件與多文件)的相關(guān)資料,希望通過(guò)本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • Spring之@Aspect中通知的5種方式詳解

    Spring之@Aspect中通知的5種方式詳解

    本文主要介紹了Spring之@Aspect中通知的5種方式詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • Java Swing實(shí)現(xiàn)掃雷小游戲

    Java Swing實(shí)現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了Java Swing實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • zookeeper監(jiān)聽(tīng)器原理的詳解

    zookeeper監(jiān)聽(tīng)器原理的詳解

    今天小編就為大家分享一篇關(guān)于zookeeper監(jiān)聽(tīng)器原理的詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-01-01
  • java中Iterator和ListIterator實(shí)例詳解

    java中Iterator和ListIterator實(shí)例詳解

    這篇文章主要介紹了java中Iterator和ListIterator實(shí)例詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java開(kāi)發(fā)工具IntelliJ IDEA安裝圖解

    Java開(kāi)發(fā)工具IntelliJ IDEA安裝圖解

    這篇文章主要介紹了Java開(kāi)發(fā)工具IntelliJ IDEA安裝圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解

    Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解

    這篇文章主要介紹了Java基礎(chǔ)之FileInputStream和FileOutputStream流詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04

最新評(píng)論