Android FileInputStream类的使用

FileInputStream类

1.FileInputStream类概述


    继承关系:
       java.io.FileInputStream->java.io.InputStream->java.lang.Object
    实现接口:
       Closeable
    类的功能:
       FileInputStream 从文件系统中的某个文件中获取输入字节。哪些文件可用取决于主机环境。
       FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。


2.类的属性和行为


   (1) public void close() throws IOException

    功能:  关闭此文件输入流并释放与此流有关的所有系统资源。
            如果此流有一个与之关联的通道,则关闭该通道。
    指定者:接口 Closeable 中的 close
    覆盖:  类 InputStream 中的 close
    抛出:  IOException - 如果发生 I/O 错误。


   (2) public int read() throws IOException
    功能:  从此输入流中读取一个数据字节。如果没有输入可用,则此方法将阻塞。
    指定者:类 InputStream 中的 read
    返回:  下一个数据字节;如果已到达文件末尾,则返回 -1。
    抛出:  IOException - 如果发生 I/O 错误。


   (3) public int read(byte[] b) throws IOException
    功能:从此输入流中将最多b.length个字节的数据读入一个字节数组中。在某些输入可用前,此方法将阻塞
    覆盖:类 InputStream 中的 read
    参数:b - 存储读取数据的缓冲区
    返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
    抛出:IOException - 如果发生 I/O 错误。


   (4) public int read(byte[] b, int off, int len) throws IOException
    功能:从此输入流中将最多len个字节的数据读入一个字节数组中。在某些输入可用之前,此方法将阻塞。
    覆盖:类 InputStream 中的 read
    参数:b - 存储读取数据的缓冲区。

          off - 数据的起始偏移量。
          len - 读取的最大字节数。
    返回:读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。
    抛出:IOException - 如果发生 I/O 错误。


3.常见错误


   在eclipse下使用FileInputStream,提示找不到指定文件
   代码:
       filename = "abc.txt" ;
       FileInputStream fis = new FileInputStream(filename);
   错误显示:
       java.io.FileNotFoundException: dbconfig.properties (系统找不到指定的文件。)
       at java.io.FileInputStream.open(Native Method)
       at java.io.FileInputStream.<init>(FileInputStream.java:106)
       at java.io.FileInputStream.<init>(FileInputStream.java:66)
   解决方法:
       因为eclipse下运行main程序时,eclipse会自动将发布目录作为其根目录,所以会提示找不到文件,将filename改为绝对目录即可
       filename = "\sdcard\...\abc.txt" ;

你可能感兴趣的:(android,android,android,FileInputStream)