Java自学笔记(19): 【IO】字符流,缓冲流

字符流

FileReader

package character;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("test.txt");
        try {
            FileReader fr = new FileReader(file);
            char[] content;
            content = new char[512];
            fr.read(content); 
            fr.close();
            System.out.println(content);
            
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

FIleWriter

package character;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        File file = new File("test.txt");
        try {
            FileWriter fw = new FileWriter(file);
            String str = "Hello World";
            fw.write(str);
            fw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

~和字节流操作差不多

FileWriter写文件时先写入缓冲区,所以如果没有close(),内容未写入,如果不写close(),需要有flush()。


缓冲流

BUfferedReader缓冲输入流

package buffered;

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

public class BufferedREaderDemo {

    public static void main(String[] args) {
        File file = new File("test.txt");
        FileReader fr;
        try {
            fr = new FileReader(file);
            BufferedReader br = new BufferedReader(fr);
            String str = br.readLine();
            while(str!=null) {                     //输出所有文本
                System.out.println(str);
                str = br.readLine();
            }
            fr.close();
            br.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        
    }

}
}

转换流   InputStreamReader,OutputStreamWriter

package buffered;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BufferedReaderDemo2 {

    public static void main(String[] args) {
        // 键盘输入
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));   //转换流
        try {
            System.out.println(br.readLine());   //输出
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        //反复输入
        try {
            String str = br.readLine();
            while(str!=null) {
                System.out.println(str);
                str= br.readLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

BufferedWriter缓冲输出流

输出的数据先存入缓冲区中

写入:

package buffered;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class BufferWriterDemo {

    public static void main(String[] args) {
        // 写入一首诗
        String[] str = {"我是小妖怪 ,逍遥又自在","杀人不眨眼, 吃人不放盐","一口七八个, 肚子要撑破","茅房去拉屎, 想起忘带纸"};
        File file = new File("test.txt");
        FileWriter fw;
        try {
            fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            for(int i=0;i<str.length;i++) {
                bw.write(str[i]);
                bw.write("\n\r");
            }
            bw.close();
            fw.close();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }    
    }
}

全是代码~

猜你喜欢

转载自www.cnblogs.com/tkj521Ya/p/11287305.html