类加载器
java.io.FileInputStream 是 Java 标准库中的一个类,用于从文件系统中读取字节流。当你创建一个 FileInputStream 实例时,它会尝试根据你提供的参数找到并打开一个文件进行读取。具体来说:
- 绝对路径:如果你提供了一个绝对路径(例如,”/home/user/documents/file.txt”),FileInputStream 将从文件系统的根目录开始查找这个路径下的文件。
- 相对路径:如果你提供了一个相对路径(例如,”documents/file.txt”),FileInputStream 将从当前工作目录开始查找文件。当前工作目录通常是执行Java程序的命令行窗口或IDE的当前工作目录。
- 类路径资源:虽然这不是 FileInputStream 的典型用法,但如果你尝试用类路径中的资源创建 FileInputStream,这通常会导致失败,因为 FileInputStream 预期的是文件系统中的文件,而不是类路径中的资源。类路径资源通常应该用 ClassLoader.getResourceAsStream() 或 Class.getResourceAsStream() 方法来访问。
- 文件对象:你也可以传递一个 java.io.File 对象给 FileInputStream 的构造器。在这种情况下,File 对象会处理路径解析,然后 FileInputStream 使用解析后的路径来打开文件。
在所有情况下,如果文件未找到,FileInputStream 构造器将抛出 FileNotFoundException。因此,确保提供的文件路径是正确的,并且文件存在于该路径下,是避免异常的关键
FileInputStream 这个加载的是项目根目录
JDBCUtils.class.getClassLoader().getResourceAsStream(“druid.properties”):从resource下加载
参考链接: