创建:构造参数有字符串和File对象两种
方法: 方法:fis.read() 作用:读取一个字节,返回int类型的字节值,如果读取到末尾返回-1
方法:fis.close() 作用:输入流用了操作系统资源,用完必须关闭流 只要是打开了外部的资源(文件、数据库连接、网络连接)在使用后都需要关闭,释放资源
2.文件字节输入流通过jdk1.7后的新try-with-resource结构和通过自定义缓冲区读取文件
package season15; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class TestInOrOutputStream { public static void main(String[] args) throws IOException { // 在JDK7中,提供了一种新语法,叫做try-with-resource, //能够自动关闭外部资源,不需要写finally,简化代码 //并没有with和resource代码块,只是try后面加括号 try( // 此处只能创建实现了AutoClosable接口的对象 // 把对象创造放到try后面的小括号里面定义 FileInputStream fis=new FileInputStream("c:/a.txt"); ){ //System.out.println((char)fis.read()); /** * 方法:fis.available() * 作用:流中可读取的字节数 */ // 通过buffer字节数组减少对硬盘的读取次数,提高效率 // 自己定义的缓冲区,不要太大不要太小 byte[] buffer=new byte[1024]; /** * 方法:fis.read(buffer) * 作用:一次性读取buffer.length个字节到buffer中, * 返回实际读取到的字节数,如果读取到末尾,则返回-1 */ /** * 方法:new String(buffer,0,num) * 作用:将指定长度的字节数组转换为字符串 */ int num=-1; while((num=fis.read(buffer)) != -1){ System.out.println(new String(buffer,0,num)); } }catch(IOException e){ e.printStackTrace(); } } }