JAVA---IO流(中)

本文详细介绍了Java中的字节输入流InputStream及其子类FileInputStream,包括其构造方法和两种读取数据的方式。通过示例代码展示了如何使用FileInputStream读取文件内容,包括单个字节读取和字节数组读取。强调了循环读取和资源释放的重要性。
摘要由CSDN通过智能技术生成
字节输入流:InputStream(抽象类)
    FileInputStream

FileInputStream的构造方法
    FileInputStream(File file)
    FileInputStream(String name)

字节输入流读取数据两种方式:
    FileInputStream的成员方法
        public int read()
        public int read(byte[] b)
public class FileInputStreamDemo1 {
    public static void main(String[] args) throws Exception {
        //1、创建字节输入流对象
        //FileInputStream(File file)
        //读取数据的时候,如果文件不存在,报错
//        File file = new File("f.txt"); //f.txt (系统找不到指定的文件。)
//        File file = new File("e.txt");
//        FileInputStream fis = new FileInputStream(file);

        //FileInputStream(String name)
        FileInputStream fis = new FileInputStream("e.txt");

        //调用read方法读取数据,并输出在控制台上
        //public int read(),一次只能读取一个字节,返回的是ASCII码值,强制类型转换
//        int read = fis.read();
//        System.out.println((char)read);
//
//        int read2 = fis.read();
//        System.out.println((char)read2);

        //如果文件中数据很多的话,还是这样一个字节一个字节的读取,没有做任何改进,即将会很麻烦
        //使用循环改进读取
        //由于我们不知道什么时候将文件数据读取完毕,所以使用while循环
        //控制跳出while循环的条件是什么,数据的下一个字节,如果达到文件的末尾, -1 。
//        int read = fis.read();
//        while (read != -1) {
//            System.out.print((char) read);
//            read = fis.read();
//        }

        //字节输入流读取数据的第一种方式最终版写法:
        int i = 0;
        while ((i = fis.read()) != -1) {
            System.out.print((char) i);
        }

        //释放资源
        fis.close();


    }
}
字节输入流读取数据的第二种方式:一次读取一个字节数组
public int read(byte[] b)
public class FileInputStreamDemo2 {
    public static void main(String[] args) throws Exception {
        //1、创建字节输入流对象
        FileInputStream fis = new FileInputStream("e.txt");
        byte[] bytes = new byte[1024];
        int length = 0;
        while ((length=fis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,length));
        }

        //释放资源
        fis.close();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值