JAVA —— IO流续

复习一下上次的字节流 

一、字符流

1. Reader —— FileReader  文件字符输入流——读字符数据进来

2. Writer —— FileWriter文件字符输出流——写字符数据进去

 


 1. Reader —— FileReader(文件字符输入流)

	public static void main(String[] args) {
	    try (
	            //创建一个字符输入流管道与源文件接通
	            Reader fr = new FileReader("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\ziFu\\io_1");
	            ){
	        //读取文本文件的内容
	        int c; //记住每次读取的字符编号
	        while ((c = fr.read()) != -1) {
	            System.out.print((char) c);
	        }
	    } catch (Exception e) {
	        e.printStackTrace();
	    }
	}

对于这种方法,系统性能不太好,每次都得调用,所以用以下方法来减少调用,提高性能

 public static void main(String[] args) {
        try (
                //创建一个字符输入流管道与源文件接通
                Reader fr = new FileReader("文件路径");
        ) {
            char[] buffer = new char[3];
            int len;
            while ((len = fr.read(buffer)) != -1) {
                System.out.print(new String(buffer, 0, len));
            }
         } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 


2. Writer —— FileWriter(文件字符输出流)

作用:以内存为基准,把内存中的数据以字符的形式写出到文件中去

public static void main(String[] args) {
    try (
            FileWriter fw = new FileWriter("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\ziFu\\io_2",true)
            ){
        fw.write(97); //写一个字符
        fw.write("我爱中国!"); //写一个字符串
        fw.write("\r\n"); //回车换行

        fw.write("我是中国人的",0,5); //规定写多少个字符进去
        fw.write("\r\n");

        char[] buffer = {'你', '好', '美', '丽'};
        fw.write(buffer,0,2); //写一个字符数组,可以规定去几个数字
        fw.write("\r\n");

    }catch (Exception e){
        e.printStackTrace();
    }
}


一个非常重要的知识!!!

关于流的关闭:close() or flush()

public static void main(String[] args) throws IOException {
        FileWriter fw1 = new          FileWriter("E:\\developcode\\javacode\\javabase\\src\\com\\IO\\ziFu\\io_3");
        fw1.write(97); //写一个字符
        fw1.write("我爱中国!"); //写一个字符串
        fw1.write("\r\n"); //回车换行

        fw1.write("我是中国人的",0,5); //规定写多少个字符进去
        fw1.write("\r\n");

        char[] buffer = {'你', '好', '美', '丽'};
        fw1.write(buffer,0,2); //写一个字符数组,可以规定去几个数字
        fw1.write("\r\n");

        //必须刷新才可以创建成功,实质是先将数据拿到一个缓冲区,再从缓冲区读取,如果缓冲区满了会自动刷新
        //fw1.flush();//刷新,还可以再用
        //fw1.write(98);
        //fw1.flush();

        fw1.close();//关闭流,包含刷新流,不可以再用这个流了
    }

关于字符流的知识大概就总结完了

  • 12
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值