Java IO流(2.5)——FileInputStream

FileInputStream中其他常用方法——int available()


一、int available()方法

返回流当中剩余的没有读到的字节数量

二、代码展示

1.框架

框架很注重要,一定要会搭

package IO;


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputStreamTest05 {
    public static void main(String[] args) {
        FileInputStream fis =null;
        try {
            fis = new FileInputStream("temp");


        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

2.被读取文件展示

在这里插入图片描述
为了便于理解,文件中仅有a b c d e f五个英文小写字符

3.方法使用

作用一:展示流当中剩余的没有读到的字节数量

package IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
int available():返回流当中剩余的没有读到的字节数量
 */
public class FileInputStreamTest05 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("temp");
            System.out.println("总字节数:"+ fis.available());
            //读一个字节
            int readByte = fis.read();
            //还剩下可以读的字节数量:5
            System.out.println("剩下多少个字节没有读:"+fis.available());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

}

执行结果:
在这里插入图片描述
作用二:可直接读取文件,不需要循环

package IO;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

public class FileInputStreamTest05 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream("temp");
            System.out.println("总字节数:"+ fis.available());
                   
            byte[] bytes = new byte[fis.available()];
            int readCount = fis.read(bytes);//6
            System.out.println(new String(bytes));
            
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

注意:使用这种方法不能读太大的文件,因为byte[]数组在内存中不能太大,过大会占用过多的内存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值