亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java知識(shí)點(diǎn)總結(jié)(JavaIO-字符流)

thekingisalwaysluc / 3492人閱讀

摘要:使用字節(jié)流寫入文件,如果沒有關(guān)閉字節(jié)流操作,文件依然存在內(nèi)容,說明字節(jié)流是操作文件本身的。字節(jié)流比字符流更好,使用更廣泛。

Java知識(shí)點(diǎn)總結(jié)(JavaIO-字符流)

@(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO]

[toc]

在程序中一個(gè)字符等于兩個(gè)字節(jié),那么 Java 提供了 Reader 和 Writer 兩個(gè)專門操作字符流的類。

字符輸出流:Writer

類定義如下:

public  abstract class Writer extends Object implements Appendable,Closeable,F(xiàn)lushable

Appendable 接口表示內(nèi)容可以被追加,接收的參數(shù)是CharSequence,實(shí)際上 String 類就實(shí)現(xiàn)了此接口,所以可以直接通過此接口的方法向輸出流中追加內(nèi)容。

字符輸入流:Reader
 
public  abstract class Reader extends Object implements Readable,Closeable


 
import  java.io.File;
import  java.io.FileReader;
import  java.io.FileWriter;
import  java.io.IOException;
import  java.io.Reader;
import  java.io.Writer;
 
public  class Demo04 {
 
  // 輸出文件內(nèi)容
  public static void test1() throws IOException {
    File file = new File("E:" + File.separator + "test.txt");
    Writer fw = new FileWriter(file);
 
    String str = "Hello world!";
    fw.write(str);
    fw.close();
 
  }
 
  // 追加文件內(nèi)容
  public static void test2() throws IOException {
    File file = new File("E:" + File.separator + "test.txt");
    Writer fw = new FileWriter(file, true);
 
    String str = "
Hello world!";
    fw.write(str);
    fw.close();
 
  }
 
  // 從文件中讀取內(nèi)容
  public static void test3() throws IOException {
    File file = new File("E:" + File.separator + "test.txt");
 
    Reader fr = new FileReader(file);
    char[] c = new char[(int) file.length()];
    int len = fr.read(c); // 返回值是讀取的字符數(shù)
    
    fr.close();
    System.out.println("內(nèi)容是:"  + new String(c, 0, len));
 
  }
 
  // 使用循環(huán)方式讀取內(nèi)容
  public static void test4() throws IOException {
    File file = new File("E:" + File.separator + "test.txt");
 
    Reader fr = new FileReader(file);
    char[] c = new char[(int) file.length()];
    
    int temp = 0;
    int len = 0;
    while((temp = fr.read()) != -1){
      c[len] = (char)temp ;
      len ++;
    }
    
    fr.close();
    System.out.println("內(nèi)容是:"  + new String(c,0,len));
 
  }
 
  // 強(qiáng)制性清空緩沖區(qū)
  public static void test5() throws IOException {
    File file = new File("E:" + File.separator + "test.txt");
    Writer fw = new FileWriter(fil e);
 
    String str = "Hello world!";
    fw.write(str);
    
    fw.flush();
    //fw.close();
 
  }
 
  public static void main(String[] args) {
    try {
      /*test1();
      test2();
      test4();*/
       test5();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
} 

字節(jié)流和字符流的區(qū)別

字符流在操作時(shí)使用了緩沖區(qū)(內(nèi)存),通過緩沖區(qū)再操作文件。

使用字節(jié)流寫入文件,如果沒有關(guān)閉字節(jié)流操作,文件依然存在內(nèi)容,說明字節(jié)流是操作文件本身的。

使用字符流寫入文件,如果沒有關(guān)閉字符流操作,文件中沒有任何內(nèi)容,這是因?yàn)樽址魇褂昧司彌_區(qū),關(guān)閉字符流時(shí)會(huì)強(qiáng)制性的將緩沖區(qū)中的內(nèi)容進(jìn)行輸出,但是如果程序沒有關(guān)閉,則緩沖區(qū)的內(nèi)容無法輸出,所以文件中沒有內(nèi)容。

緩沖區(qū):如果一個(gè)程序頻繁地操作一個(gè)資源(如文件或數(shù)據(jù)庫),則性能會(huì)很低,此時(shí)為了提升性能,就可以將一部分?jǐn)?shù)據(jù)暫時(shí)讀入到內(nèi)存的一塊區(qū)域之中,以后直接從此區(qū)域中讀取數(shù)據(jù)即可,因?yàn)樽x取內(nèi)存速度會(huì)比較快。

在字符流操作中,所有的字符都是在內(nèi)存中形成的,在輸出前會(huì)將所有的內(nèi)容暫時(shí)保存在內(nèi)存之中,所以使用了緩沖區(qū)暫存數(shù)據(jù)。

字節(jié)流比字符流更好,使用更廣泛 。

所有的文件在硬盤或傳輸時(shí)都是以字節(jié)的方式進(jìn)行的,包括圖片等都是按字節(jié)的方式存儲(chǔ)的,而字符是自由在內(nèi)存中才會(huì)形成,所以在開發(fā)中,字節(jié)流使用較為廣泛。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/69158.html

相關(guān)文章

  • Java識(shí)點(diǎn)總結(jié)JavaIO-轉(zhuǎn)換

    摘要:知識(shí)點(diǎn)總結(jié)轉(zhuǎn)換流知識(shí)點(diǎn)總結(jié)是的子類,將一個(gè)字符流的輸出對(duì)象變?yōu)樽止?jié)流的輸出對(duì)象。將字節(jié)輸出流轉(zhuǎn)為字符輸出流字節(jié)流轉(zhuǎn)為字符流蘋果將字節(jié)輸入流轉(zhuǎn)為字符輸入流內(nèi)容是 Java知識(shí)點(diǎn)總結(jié)(JavaIO-轉(zhuǎn)換流) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV82dQ?w=849&h=226); O...

    luckyyulin 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)JavaIO-打印

    摘要:知識(shí)點(diǎn)總結(jié)打印流知識(shí)點(diǎn)總結(jié)打印流是輸出信息最方便的類,主要包括字節(jié)打印流和字符打印流。可以打印任何數(shù)據(jù)類型,小數(shù),整數(shù),字符串等。格式化輸出姓名年齡分?jǐn)?shù)性別 Java知識(shí)點(diǎn)總結(jié)(JavaIO-打印流) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] 打印流是輸出信息最方便的類,主要包括字節(jié)打印流(PrintStream)和字符打印流(PrintWriter)。 可...

    wenzi 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)JavaIO- BufferedReader類 )

    摘要:知識(shí)點(diǎn)總結(jié)類知識(shí)點(diǎn)總結(jié)類用于從緩沖區(qū)中讀取內(nèi)容,所有的輸入字節(jié)數(shù)據(jù)都將放在緩沖區(qū)中中定義的構(gòu)造方法只能接收字符輸入流的實(shí)例,所以必須使用字符輸入流和字節(jié)輸入流的轉(zhuǎn)換類將字節(jié)輸入流轉(zhuǎn)變?yōu)樽址鳌? Java知識(shí)點(diǎn)總結(jié)(JavaIO- BufferedReader類) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] showImg(https://segmentfault....

    alanoddsoff 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)JavaIO-字節(jié)

    摘要:知識(shí)點(diǎn)總結(jié)字節(jié)流知識(shí)點(diǎn)總結(jié)字節(jié)流在程序中所有的數(shù)據(jù)都是以流的方式進(jìn)行傳輸或保存的,程序需要數(shù)據(jù)時(shí)要使用輸入流讀取數(shù)據(jù),而當(dāng)程序需要將一些數(shù)據(jù)保存起來時(shí),就要使用輸出流。字節(jié)流主要操作類型數(shù)據(jù),以數(shù)組為準(zhǔn),主要操作類是類和類。 Java知識(shí)點(diǎn)總結(jié)(JavaIO-字節(jié)流) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] 字節(jié)流 在程序中所有的數(shù)據(jù)都是以流的方式進(jìn)行傳輸或保...

    BigTomato 評(píng)論0 收藏0
  • Java識(shí)點(diǎn)總結(jié)JavaIO-合并類)

    摘要:知識(shí)點(diǎn)總結(jié)合并流類知識(shí)點(diǎn)總結(jié)合并流的主要功能是將兩文件的內(nèi)容合并成一個(gè)文件字節(jié)在多文件的應(yīng)用場(chǎng)景下非常高效,因?yàn)槭菍⒍鄠€(gè)流串聯(lián)起來,形成一個(gè)流,便于操作 Java知識(shí)點(diǎn)總結(jié)(JavaIO- 合并流類 ) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV9a9X?w=853&h=164); 合...

    iliyaku 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<