IO之FileWriter读取字符型文件

好记性不如赖笔头…………

FileWriter在读取文件时,常用的方法有两种:

  1. 使用read()方法一次读取一个字符
  2. 使用read(char[] chs)方法一次读取一定数量的字符,相对来说,这种方法效率更高
package com.Ckinghan.ioDemo;

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

public class FileReaderDemo {

    public static void main(String[] args) {
        /**
         * 一个个读取字符
         */
        fileReader();

        System.out.println("--------------------------------------------------------------------我是分离线--------------------------------------------------------------------");

        /**
         * 一次读取指定数量的字符
         */
        fileReader2();
    }

    /**
     * @描述:一次读取指定数量的字符
     * @创建时间:
     */
    public static void fileReader2(){
        FileReader fileReader = null;
        try {

            //创建FileReader对象
            fileReader = new FileReader("JavaIOWriter.java");
            int readDate = -1;

            //使用read(char[] chars)一次读取指定长度的字符
            char[] chars = new char[10];

            //如果数据读取到最后没有数据了,就会返回-1,根据这个可以使用循环读取
            while ((readDate = fileReader.read(chars)) != -1) {
                System.out.print(new String(chars, 0,readDate));
            }
            //如果文件不存在,会抛出文件找不到异常
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            //当读取文件时,如果文件不存在或被占用,就会抛出IO异常
        }catch (IOException e) {
            e.printStackTrace();
        }finally {
            //如果fileReader不等于NULL,则关头流
            if(fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * @描述:一个个读取字符
     * @创建时间:
     */
    public static void fileReader(){
        FileReader fileReader = null;
        try {
            //创建FileReader对象
            fileReader = new FileReader("JavaIOWriter.java");
            int readDate = 0;
            //使用read()每次只能读取一个字符,并且会转换为ascii码返回
            readDate = fileReader.read();
            System.out.println("第一次读到的数据为:"+readDate+";转换字符为:"+(char)readDate);

            //如果数据读取到最后没有数据了,就会返回-1,根据这个可以考虑使用循环读取
            while ((readDate = fileReader.read()) != -1) {
                System.out.print((char)readDate);
            }
            //如果文件不存在,会抛出文件找不到异常
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            //当读取文件时,如果文件不存在或被占用,就会抛出IO异常
        }catch (IOException e) {
            e.printStackTrace();
        }finally {
            //如果fileReader不等于NULL,则关头流
            if(fileReader != null){
                try {
                    fileReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值