美文网首页
15. Java IO: FileInputStream

15. Java IO: FileInputStream

作者: kopshome | 来源:发表于2017-11-23 17:56 被阅读0次

    想要查看此教程的目录请点击: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()方法即可。至于异常处理,可以参考相关的异常处理章节。

    相关文章

      网友评论

          本文标题:15. Java IO: FileInputStream

          本文链接:https://www.haomeiwen.com/subject/textbxtx.html