下面要给大家介绍的是和文件输入流FileInputStream类相关的内容,对于FileInputStream类你了解多少呢?一起来了解一下吧。
FileInputStream是Java流中比较常用的一种,它表示从文件系统的某个文件中获取输入字节,通过使用 FileInputStream可以访问文件中的一个字节、一批字节或整个文件。
创建FileInputStream类的对象的时候,假如,找不到指定的文件将拋出FileNotFoundException异常,这个异常必须捕获或声明拋出。
FileInputStream常用的构造方法的两种重载形式:
FileInputStream(File file)-通过打开一个到实际文件的连接来创建一个FileInputStream,这个文件通过文件系统中的File对象file指定。
FileInputStream(String name)-通过打开一个到实际文件的链接来创建一个FileInputStream,这个文件通过文件系统中的路径名name指定。
FileInputStream()两个构造方法的使用示例:
try { // 以File对象作为参数创建FileInputStream对象 FileInputStream fis1 = new FileInputStream(new File("F:/mxl.txt")); // 以字符串值作为参数创建FilelnputStream对象 FileInputStream fis2 = new FileInputStream("F:/mxl.txt"); } catch (FileNotFoundException e) { System.out.println("指定的文件找不到!"); }
示例:
假设,有一个文件,下面使用FileInputStream类读取并输出该文件的内容。
具体代码:
public class Test10 { public static void main(String[] args) { File f = new File("D:/myJava/HelloJava.java"); FileInputStream fis = null; try { // 因为File没有读写的能力,所以需要有个InputStream fis = new FileInputStream(f); // 定义一个字节数组 byte[] bytes = new byte[1024]; int n = 0; // 得到实际读取到的字节数 System.out.println("D:\\myJava\\HelloJava.java文件内容如下:"); // 循环读取 while ((n = fis.read(bytes)) != -1) { String s = new String(bytes, 0, n); // 将数组中从下标0到n的内容给s System.out.println(s); } } catch (Exception e) { e.printStackTrace(); } finally { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } }
上述代码,在FileInputDemo类的main()方法中首先创建了一个File对象f,该对象指D:\myJava\HelloJava.java文件,接着使用FileInputStream类的构造方法创建了一个FileInputStream对象fis,并声明一个长度为1024的byte类型的数组,然后使用 FileInputStream类中的read()方法将HelloJava.java文件中的数据读取到字节数组bytes中,并输出该数据,最后在finally语句中关闭FileInputStream输入流。
下面是HelloJava.java文件的原始内容:
下面是运行程序后的输出内容:
D: \myJava\ HelloJava.java文件内容如下: /* *第一个java程序 */ public class HelloJava { // 这里是程序入口 public static void main(String[] args) { // 输出字符串 System.out.println("你好 Java"); } }
注意了:FileInputStream类重写了父类InputStream中的read()方法、skip()方法、available()方法和close()方法,不支持mark()方法和reset()方法。
以上的内容你都清楚了吗?更多相关知识,请继续关注奇Q工具网的java入门栏目来进行了解吧。
推荐阅读:
java字节数组输入流ByteArrayInputStream类介绍