【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();
        }
    }
相关文章
相关标签/搜索