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

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

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

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

 

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

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");
  //字符流寫入的方法
  public String writeInFile() throws IOException{
    String str = "";
    String count = "";
    try {
      // 使用字符流對文件進(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)容的尾部添加,若不寫則表示清空文件后再添加內(nèi)容
      PrintWriter pw=new PrintWriter(new FileWriter(f,true));
      pw.write("測試輸入字符串到文件中2");
      pw.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) throws IOException {
    Test test=new Test();
    //將字符串輸入到文件中
    test.getReader();
    //讀取相對應(yīng)的字符串
    String str=test.writeInFile();
    //將文件中內(nèi)容在控制臺輸出
    System.out.println("文件內(nèi)容為:"+str);
  }
}

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

然后是通過字節(jié)流的方式對文件進(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é)流讀取并寫入文件,將一個(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ù)組,用于存儲讀取到的內(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í)若想在控制臺輸出讀取到的字節(jié)流的內(nèi)容則可以在第27和28行之間加兩句代碼:in.read(b, 0, b.length);System.out.println(new String(b));

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

相關(guān)文章

  • 詳解Java兩種方式簡單實(shí)現(xiàn):爬取網(wǎng)頁并且保存

    詳解Java兩種方式簡單實(shí)現(xiàn):爬取網(wǎng)頁并且保存

    本篇文章主要介紹了Java兩種方式簡單實(shí)現(xiàn):爬取網(wǎng)頁并且保存 ,主要用UrlConnection、HttpClient爬取實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • java實(shí)現(xiàn)單詞小游戲

    java實(shí)現(xiàn)單詞小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)單詞小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-02-02
  • IDEA必備開發(fā)神器之EasyCode

    IDEA必備開發(fā)神器之EasyCode

    對于java程序員來說,日常工作中就是crud的操作,每次都要搭建MVC三層,還是很繁瑣,這里就出現(xiàn)了神器easycode的工具.可以快速生成代碼.并且還可以自定義模板.需要的朋友可以參考下
    2021-05-05
  • IDEA main主函數(shù)如何添加args變量

    IDEA main主函數(shù)如何添加args變量

    這篇文章主要介紹了IDEA main主函數(shù)如何添加args變量,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • springboot+redis過期事件監(jiān)聽實(shí)現(xiàn)過程解析

    springboot+redis過期事件監(jiān)聽實(shí)現(xiàn)過程解析

    這篇文章主要介紹了springboot+redis過期事件監(jiān)聽實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    spring?boot自動(dòng)裝配之@ComponentScan注解用法詳解

    @ComponentScan的作用就是根據(jù)定義的掃描路徑,把符合掃描規(guī)則的類裝配到spring容器中,下面這篇文章主要給大家介紹了關(guān)于spring?boot自動(dòng)裝配之@ComponentScan注解用法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • Java根據(jù)URL下載文件到本地的2種方式(大型文件與小型文件)

    Java根據(jù)URL下載文件到本地的2種方式(大型文件與小型文件)

    這篇文章主要給大家介紹了關(guān)于Java根據(jù)URL下載文件到本地的2種方式,分別是大型文件與小型文件,避免內(nèi)存溢出OOM,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • spring boot項(xiàng)目同時(shí)傳遞參數(shù)和文件的多種方式代碼演示

    spring boot項(xiàng)目同時(shí)傳遞參數(shù)和文件的多種方式代碼演示

    這篇文章主要介紹了spring boot項(xiàng)目同時(shí)傳遞參數(shù)和文件的多種方式,在開發(fā)接口中,遇到了需要同時(shí)接收參數(shù)和文件的情況,可以有多種方式實(shí)現(xiàn)文件+參數(shù)的接收,這里基于spring boot 3 + vue 3 + axios,做一個(gè)簡單的代碼演示,需要的朋友可以參考下
    2023-06-06
  • 常用的Java數(shù)據(jù)結(jié)構(gòu)知識點(diǎn)匯總

    常用的Java數(shù)據(jù)結(jié)構(gòu)知識點(diǎn)匯總

    這篇文章主要介紹了常用的Java數(shù)據(jù)結(jié)構(gòu)知識點(diǎn)匯總,數(shù)據(jù)結(jié)構(gòu)分線性數(shù)據(jù)結(jié)構(gòu)和非線性數(shù)據(jù)結(jié)構(gòu),下面對此作詳細(xì)介紹,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)或工作有所幫助
    2022-03-03
  • Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法

    Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法

    這篇文章主要介紹了Java實(shí)現(xiàn)把窗體隱藏到系統(tǒng)托盤方法,本文直接給出核心功能代碼,需要的朋友可以參考下
    2015-05-05

最新評論

六枝特区| 安图县| 乐业县| 女性| 沿河| 和静县| 大英县| 确山县| 玉林市| 建始县| 潢川县| 芦溪县| 德兴市| 万年县| 康保县| 稻城县| 金湖县| 汉阴县| 马鞍山市| 滦南县| 连南| 新邵县| 广昌县| 吉木乃县| 章丘市| 普陀区| 高陵县| 莲花县| 德江县| 北辰区| 横峰县| 芦山县| 彩票| 吉安市| 和田县| 衡水市| 灵川县| 瑞丽市| 顺平县| 营口市| 仙居县|