FileInputStream简介说明
下文笔者讲述FileInputStream的简介说明,如下所示
FileInputStream初始化方法
FileInputStream(String name) FileInputStream(File file) //直接通过文件地址初始化 FileInputStream fis = new ileInputStream("D:/test/test1.txt"); //通过File对象初始化 File file = new File("D:/test/test1.txt"); FileInputStream fis = new FileInputStream(file)
获取文件大小
FileInputStream fis = new ileInputStream("D:/test/test1.txt"); fis.available(); //文件大小
读取文件内容
获取文件内容的实现思路: read(): 读取一个字节(返回对应字节的ascii码值) read(byte b[]): 根据字节缓冲数组的长度,进行读取(返回读取的字节数)
read()示例
FileInputStream fis = new ileInputStream("D:/test/test1.txt"); while (true){ //read() 方法:从输入流对象中,一次读取一个字节(返回的是对应字节的ascii码值,int类型) int hasRead = fis.read(); //当读取到末尾,返回-1,代表文件读取结束 if(hasRead == -1){ break; } System.out.print((char) hasRead); //打印文件中字符的ascii值 //转化为字符:KH96abcdefghijk } //最后一定要关闭资源 fis.close();
read(byte b[])的功能及示例
带缓冲字节数, 读取文件内容, 一次读取就不是一个字节, 而是根据字节缓冲数组的长度,进行读取例
FileInputStream fis = new ileInputStream("D:/test/test1.txt"); //带缓冲字节数,根据字节缓冲数组的长度,进行读取 byte[] bytes = new byte[5]; //容易出错的判断方式:read()方式执行一次,就读取一个字节(没有保存,读完就扔,字节丢失),不可以作为判断条件 while(fis.read() != -1){ //循环读取内容 //带缓冲数组的读取,方法返回的是读取的字节数,不是读取的内容 //每次读取的数据,是由缓冲字节数组长度决定,每次都是从上一次读取的位置后开始继续读取,每次都是将读取的内容依次放入缓存数组 int hasRead = fis.read(bytes); System.out.println("读取的字节数:"+hasRead); System.out.println(new String(bytes)); System.out.println("读取文件成功"); } //注意此处应放入到 finally中 fis.close();
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。