15. Java IO: FileInputStream

想要查看此教程的目录请点击:Java IO教程目录贴地址


使用FileInputStream可以以字节流的形式来读取文件内容。FileInputStream是InputStream的子类,所以你可以使用FileInputStream像InputStream一样。

FileInputStream例子

下面是一个简单的例子:

InputStream input = new FileInputStream("c:\\data\\input-text.txt");

int data = input.read();
while(data != -1) {
  //do something with data...
  doSomethingWithData(data);

  data = input.read();
}
input.close();

注意:为了保证代码思路清晰,这里并没有考虑异常处理的情况。

FileInputStream的构造方法

FileInputStream提供了三种构造方法来创建一个实例。我会在这里先介绍前两个。

第一个构造方法有一个String类型的参数。这个参数是指你想要读取的文件路径。下面是一个例子:

String path = "C:\\user\\data\\thefile.txt";

FileInputStream fileInputStream = new FileInputStream(path);

注意路径字符串。他需要两个“\”来生成一个“\”。因为“\”在Java中是转义字符。所以你想写一个“\”就得用两个“\”来表示。

在linux或unix中,文件的路径像下面这样:

String path = "/home/jakobjenkov/data/thefile.txt";

注意使用常规的分隔符(/)来作为目录分隔符。这是如何在linux或unix上写文件路径。实际上,以我的经验,Java应该也理解你在windows上用"/"作为路径分隔符,类似这样的:c:/user/data/thefile.txt,但是别听我的,你去你的系统上测试一下。

第二个构造方式是提供一个File类型的参数。这个参数你可以传入你想要读取的文件:

String path = "C:\\user\\data\\thefile.txt";
File   file = new File(path);

FileInputStream fileInputStream = new FileInputStream(file);

具体选用哪个构造函数,这取决于你有什么。如果你已经有一个String或File,那么只要用相应的就好了。将String转为File或者将File转为String,并没有太大的区别。

read()

FileInputStream的read()方法会返回一个int值,它是读取的字节。如果返回 -1,那么说明已经读取完毕。-1是int值,而不是一个byte值,这里可是不一样的。这个方法和InputStream中的read()使用是一样的。

read(byte[])

FileInputStream也有两个read()方法,使用的的方式也是和InputStream章节是一样的。

close()

和其他的InputStream一样,FileInputStream也需要在使用后关闭,调用close()方法即可。至于异常处理,可以参考相关的异常处理章节。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,468评论 19 139
  • 一、流的概念和作用。 流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象。即数据在两设备之间的传输...
    布鲁斯不吐丝阅读 13,420评论 2 95
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,955评论 18 399
  • 1 IONo18 1.1IO框架 【 IO:Input Output 在程序运行的过程中,可能需要对一些设备进...
    征程_Journey阅读 4,513评论 0 1
  • 原来,不知不觉中,乡愁、成长、爱情,都已深埋在了我对梧桐树的无限眷恋里…… 01 这世间总有一些莫名其妙的情感,好...
    仙游园阅读 4,865评论 0 5