FileInputStream类

FileInputStream类FileInputStream类如果用户的文件读取需求比较简单,则可以使用FileInputStream类,该类是InputStream的子类,提供了基本的文件读取功能。FileInputStream类的常用构造方法如下:Ø FileInputStream(Stringname):使用给定的文件名name,创建一个FileInputStream对象。Ø FileInput

大家好,又见面了,我是你们的朋友全栈君。

FileInputStream类

如果用户的文件读取需求比较简单,则可以使用FileInputStream类,该类是InputStream的子类,提供了基本的文件读取功能。

FileInputStream类的常用构造方法如下:

Ø  FileInputStream( String name ):使用给定的文件名name,创建一个FileInputStream对象。

Ø  FileInputStream( File file ):使用File对象创建FileInputStream对象。

1.使用文件输入流读取文件

         文件输入流FileInputStream提供了对文件的存取。为了读取文件,使用文件输入流构造方法来打开一个到达该文件的输入流(源就是这个文件,输入流指向这个文件)。

例如:为了读取一个名为myfile.txt的文件,建立一个文件流对象,代码如下:

FileInputStream istream=new FileInputStream(“myfile.txt”);

或者:File file=newFile(“myfile.txt””);

          FileInputStream istream=new FileInputStream(file);

2.从输入流中读取字节

输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取文件中的数据。

read方法提供了一个从输入流读取数据的基本方法,read方法的格式如下:

返回值

方法

说明

int

read( )

从输入流中读取数据的下一个字节

int

read(byte[] b)

从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。以整数形式返回读取的字节数。

int

read(byte[] b, int off, int len)

将输入流中最多 len 个数据字节读入 byte 数组。尝试读取 len 个字节,但读取的字节也可能小于该值。以整数形式返回实际读取的字节数。

注:read方法在从输入流中读取源中的数据时,如果到达源的末尾,便会返回-1。

FileInputStream流顺序地读取文件,只要不关闭流,每次调用read方法就顺序的读取源中其余的内容,直至源的末尾或流被关闭。

3.关闭流

虽然Java在程序结束时自动关闭所有打开的流,但是当我们使用完流后,显式的关闭我们打开的流仍是一个良好的习惯。如果没有过关闭被打开的流,可能会用尽系统资源或者造成某些资源不能被其他程序访问。关闭输入流,可以把该流缓冲区中的内容清除。

close( )方法可以关闭我们打开的输入流。

实例如下:

(1)      在C盘根目录下建立一个名称为“FileInputStreamDemo.txt”的文件,文件内输入“This is atest about FileInputStream .”;

(2)      创建Java文件读取文件,代码如下:

import java.io.File;import java.io.FileInputStream;public class FileInputStreamDemo {    public staticvoidmain(String[] args){        File file;        int b;        byte[] data=newbyte[512];        try{            file=new File("C:"+File.separator+"FileInputStreamDemo.txt");            FileInputStream in=new FileInputStream(file);            while ((b=in.read(data, 0, 512))!=-1) {                String str=new String(data,0,b);                System.out.println(str);                       }
<span style="white-space:pre">	</span>in.close();        }catch(Exception e){            e.printStackTrace();        }    }}

(3)      结果如下:

Thisis a test about FileInputStream .

FileInputStream继承自InputStream类,更多方法可以参考博文 《

Java IO之输入输出流 》中的输入流InputStream类的方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144728.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • simHash 简介以及java实现[通俗易懂]

    simHash 简介以及java实现[通俗易懂] 传统的hash算法只负责将原始内容尽量均匀随机地映射为一个签名值,原理上相当于伪随机数产生算法。产生的两个签名,如果相等,说明原始内容在一定概率 下是相等的;如果不相等,除了说明原始内容不相等外,不再提供任何信息,因为即使原始内容只相差一个字节,所产生的签名也很可能差别极大。从这个意义上来 说,要设计一个hash算法,对相似的内容产生的签名也相近,是更为艰难的任务,因为它的签…

    2022年10月1日
    3
  • 什么是跨域?什么情况下会发生跨域请求?

    什么是跨域?什么情况下会发生跨域请求?跨域,指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器施加的安全限制。同源策略:所谓同源是指:协议,域名,端口均相同。即便两个不同的域名指向同一个ip地址,也非同源。http://www.123.com/index.html调用http://www.123.com/server.php(非跨域)http://www.123.com/index.html调用http://www.456.com/server.php(主域名不同:123/456,跨域)http:/

    2022年5月29日
    60
  • txt文本格式怎么转换成excel_文本格式转换为日期

    txt文本格式怎么转换成excel_文本格式转换为日期将txt文本转换为excel格式,中间使用的列分割为tab键==一、使用xlwt模块注:Excel2003一个工作表行数限制65536,列数限制256需要模块:xlwt模块安装:xl

    2022年8月5日
    5
  • 60mph和kmh换算_mph换算器(速度计算器在线)「建议收藏」

    60mph和kmh换算_mph换算器(速度计算器在线)「建议收藏」mph是英里每时的意思吗?如何换算成千米每时?100mph=160.9kmhmph是英里每时的意思吗?如何换算成千米每时?mph是米/小时的意思mitersperhour也可写成m/hAkm/h=A*1000m/h玩极品飞车12,上面的速度是mph,怎么换算啊1英里=5280英尺=63360英寸=1609.344米汽车速度表上,英制的MPH与公制的km/…

    2022年6月28日
    82
  • 实现迪杰斯特拉算法求某个源点到其余个点_迪杰斯特拉算法应用举例

    实现迪杰斯特拉算法求某个源点到其余个点_迪杰斯特拉算法应用举例如下图,使用迪杰斯特拉算法求下图的最短路径跌代过程:1)初始时从1开始寻找各节点到该节点的距离,路不通设置为maxint,此时把1归为s里面2)从1)得到距离1最短的路径对应的结点如上图为2,

    2022年8月1日
    8
  • Java中的随机数「建议收藏」

    Java中的随机数「建议收藏」Java产生可以随机数的有两个类,一个是Random类,另一个是Math类中的random()方法。1.Random类在java.util包中有一个Random类,该对象的几个方法可以生成不同数据类型的随机数。如nextInt(),nextFloat(),nextLong(),nextBoolean()分别生成的是int整形,float浮点型,double浮点型,boolean布尔类型的随机数,也必须要用制定的数据类型的变量接收。例如:输出五个随机…

    2022年7月9日
    25

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号