【207天】黑馬程序員27天視頻學習筆記【Day21-上】

叨逼叨兩句

  1. 如今能知足我質量要求,讓我興奮的外界刺激感受愈來愈少了,看來自能靠本身思考來給本身找刺激了。
  2. 羅胖的《天天聽本書》這個產品要堅持聽,但也必定要清醒的認識到,那些知識只是通識,只能提供知識廣度,帶給本身靈感,想要知識深度,仍是得靠本身一點一點的去專研。

21-01:字符流FileReader

  1. Object——Reader——InputStreamReader——FileReader
  2. 經過項目默認的碼錶,一次讀取一個字符
package com.test.demo001;

import java.io.FileReader;
import java.io.IOException;

public class Demo009 {
    public static void main(String[] args) throws IOException{
        FileReader fr = new FileReader("b.txt");
        int c;
        while((c = fr.read())!= -1){    //經過項目默認的碼錶,一次讀取一個字符
            System.out.println((char)c);
        }
        fr.close();
    }
}

21-02:字符流FileWriter

  1. Object——Writer——OutputStreamWriter——FileWriter
package com.test.demo001;

import java.io.FileWriter;
import java.io.IOException;

public class Demo009 {
    public static void main(String[] args) throws IOException{
        FileWriter fw = new FileWriter("b.txt");
        char[] kk = {'世','界'};
        fw.write(97);
        fw.write("你好");
        fw.write(kk);
        
        fw.close();
    }
}

21-03:字符流的拷貝

  1. Writer類中有一個2k大小的緩衝區,若是不關流,就會將內容寫到緩衝區裏,關流則可將緩衝區內的內容刷新再關閉。
package com.test.demo001;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo009 {
    public static void main(String[] args) throws IOException{
        FileReader fr = new FileReader("b.txt");
        FileWriter fw = new FileWriter("c.txt");
        
        int c;
        while((c = fr.read())!= -1){
            fw.write(c);
        }
        
        fr.close();
        fw.close();
    }
}

21-04:字符流的應用場景

  1. 字符流能夠拷貝文本文件,但不推薦使用,由於讀取時會把字節轉爲字符,寫出時還要把字符轉回字節。這樣的方式不如字節流拷貝java

    ![](http://a1.qpic.cn/psb?/V13aP5rZ2U5DOS/.*L6CZ5MT3Tsz4Ehz*8k1gyvusk0ulLBvguheh.9xYQ!/b/dLEAAAAAAAAA&bo=MwX0AQAAAAADAOY!&rf=viewer_4)
  2. 程序須要讀取一段文本,或者須要寫出一段文本的時候能夠使用字符流。由於讀取時是按照字符大小讀取的,不會出現半個中文的狀況。寫出的時候能夠直接將字符串寫出,不用轉換爲字節數組。

21-05:字符流是否能夠拷貝非純文本的文件

  1. 不能夠,由於未必每個文件能在碼錶中找到對應字符。

21-06:自定義字符數組的拷貝

package com.test.demo001;

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo009 {
    public static void main(String[] args) throws IOException{
        FileReader fr = new FileReader("b.txt");
        FileWriter fw = new FileWriter("c.txt");
        
        char[] arr = new char[1024];
        
        int len;
        while((len = fr.read(arr))!= -1){
            fw.write(arr,0,len);
        }
        
        fr.close();
        fw.close();
    }
}

21-07:帶緩衝的字符流

package com.test.demo001;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Demo009 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new FileReader("b.txt"));
        BufferedWriter bw = new BufferedWriter(new FileWriter("c.txt"));
                
        int c;
        while((c = br.read())!= -1){
            bw.write(c);
        }
        
        br.close();
        bw.close();
    }
}

21-08:readLine()和newLine()方法

  1. readLine():一次讀一行數組

    package com.test.demo001;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class Demo009 {
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new FileReader("b.txt"));
            String line;
            while((line = br.readLine())!= null){
                System.out.println(line);
            }
            
            br.close();
        }
    }
  2. newLine():換行符【與「rn」的區別在於它能跨平臺】code

    package com.test.demo001;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    
    public class Demo009 {
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new FileReader("b.txt"));
            BufferedWriter bw = new BufferedWriter(new FileWriter("c.txt"));
            String line;
            while((line = br.readLine())!= null){
                bw.write(line);
                //bw.write("\r\n");
                //bw.newLine();
            }
            
            br.close();
            bw.close();
        }
    }
相關文章
相關標籤/搜索