Java=字节流,字符流,Properties

1.字符流
2.IO流异常处理
3.Properties属性集
4.ResourceBundle工具类(专门用于属性集保存之后的文件)

一,字符流

首先字节流也是可以读取文本文件的!!!但是可能会出现一种状况,读取中文时只读取其中一般,因为中文不只由一个字节组成.
为了解决这个问题,引入了字符流,以字符作为单位来操作!!

字符输入流:

顶层父类:Reader 抽象类

顶层父类: Reader(抽象类)
    
共性方法:
	public void close(); 释放资源
        
    public int read(); 一次读一个字符  
    public int read(char[] chs); 一次读取一个字符数组,返回值表示实际读取的字符个数   

FileReader类

文件的字符输入流(从文件中读取字符数据)

构造方法
public FileReader(String path);
public FileReader(File file);

public class TestFileReader01 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileReader对象
        FileReader fr = new FileReader("1.txt");
//        FileReader fr = new FileReader(new File("1.txt"));
        /**
         * 以上构造干了三件事!!
         * a.创建对象fr
         * b.判断文件是否存在
         *      如果存在,不清空!!!
         *      如果不存在,报错!
         * c.绑定fr和1.txt文件
         */
    }
}

读取一个字符

.读取一个字符
public class TestFileReader02 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileReader对象
        FileReader fr = new FileReader("1.txt");

        //2.一次读一个字符
        //int ch = fr.read();
        //System.out.println((char) ch);
        //===========一次读取一个字符的标准循环代码===========
        int ch = 0; //用来保存读取到的字符
        /**
         * (ch = fr.read()) != -1
         * 以上代码干了三件事!!
         * a.读取 fr.read();
         * b.赋值 ch = 读到的字符
         * c.判断 ch != -1
         */
        while ((ch = fr.read()) != -1) {
            System.out.println((char) ch);
        }
        //3.释放资源
        fr.close();
    }
}

读取一个字符数组

public class TestFileReader03 {
    public static void main(String[] args) throws Exception {
        //1.创建一个FileReader对象
        FileReader fr = new FileReader("1.txt");
        //2.一次读一个字符数组
        //char[] chs = new char[4];
        //int len = fr.read(chs);
        //System.out.println("实际读取到"+len+"个字符");
        //System.out.println(new String(chs,0,len));
        char[] chs = new char[4]; //保存字符数据的数组
        int len = 0;//保存实际读取的个数
        /**
         * (len = fr.read(chs)) != -1
         * 以上代码也是干了三件事!!!
         * a.读取 fr.read(chs);
         * b.赋值 len = 实际读取的个数
         * c.判断 len != -1
         */
        while ((len = fr.read(chs)) != -1) {
            System.out.println(new String(chs,0,len));
        }     
        //3.释放资源
        fr.close();
    }
}

字符输出流

顶层父类:Writer(抽象类)

顶层父类:Writer(抽象类)
    
共性方法:
	public void close();//释放资源
	public void flush();//对于字符流来说有用!!

	public void write(int ch); //写一个字符

	public void write(char[] chs); //写一个字符数组
	public void write(char[] chs,int startIndex,int len); //写一个字符数组的一部分

	public void write(String str);// 直接写一个字符串
	public void write(String str,int startIndex,int len);// 直接写一个字符串的一部分

.FileWriter类

文件的字符输出流(向文件中写字符数据)

构造方法
public FileWriter(String path);
public FileWriter(File file);

public class TestFileWriter01 {
    public static void main(String[] args) throws IOException {
        //1.创建一个FileWriter对象
        FileWriter fw = new FileWriter("2.txt");
//        FileWriter fw = new FileWriter(new File("2.txt"));
        /**
         * 以上构造干了三件事
         * a.创建对象fw
         * b.判断文件是否存在
         *      如果存在,清空文件内容
         *      如果不存在,会创建文件
         * c.绑定fw和2.txt
         */
    }
}

写出字符数据的三种方法


                
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值