驾校视频网站模板,wordpress二维码动态图片大小,合同 制作 网站,flash网站建设相对路径#xff1a;项目 的 根目录 开始查找。#xff08; 但是在我们真正开发的时候#xff0c;我们读到的更多的文件并不是直接放在我们项目里面这个文件夹里面#xff0c;而是放在我们模块里面 #xff09;同理可得#xff0c;我们直接创建 文件 b.txt 会在项目的根目… 相对路径项目 的 根目录 开始查找。 但是在我们真正开发的时候我们读到的更多的文件并不是直接放在我们项目里面这个文件夹里面而是放在我们模块里面 同理可得我们直接创建 文件 b.txt 会在项目的根目录下创建文件 File file new File(b.txt);file.createNewFile();System.out.println(file.getAbsolutePath());//F:\IdeaProjects\workspace\review\b.txt1、使用类对象读取文件 Class 中的 getResourceAsStream() 方法 下面解释中提到的 资源 就是我们要找的 文件文件就相当于上面的b.txt下面的 Module 是 java 中的一个类因为在 Java 中万物皆对象是一个模块类Module也有一个方法是 getResourceAsStream下面的 类装入器 就是 类加载器 查找具有给定名称的资源如果该 类 位于命名 模块 中则此方法将尝试在 模块 中查找 资源。这是通过委托给模块的类装入器 findResourceStringString方法完成的用模块名和资源的绝对名称调用它。命名模块中的资源受 Module.getResourceAsStream方法中指定的封装规则的约束因此当资源是包中的非 .class资源且该资源未对调用者的模块打开时此方法返回 null。否则如果该类不在命名模块中则搜索与给定类关联的资源的规则由类的定义类装入器实现。此方法委托给此类对象的类装入器。如果这个类对象是由引导类加载器加载的则该方法委托给ClassLoader.getSystemResourceAsStream.在委托之前使用以下算法从给定的资源名称构造绝对资源名如果名称以 / (\u002f) 开头则资源的绝对名称是名称中 / 后面的部分。否则绝对名称为以下形式modified_package_name/name其中 modified_package_name/name 是该对象的包名用 / 代替 . (\u002e)参数name —— 资源的名称返回InputStream 对象如果没有找到具有此名称的资源则该资源位于至少未对调用方模块打开的包中或者安全管理器 拒绝 绝对 该资源的访问抛出NullPointerException —— 如果名称为空自从 1.1 开始参见Module.getResourceAsStream ( String )修改后的 9 版本 如果输入的路径对应的文件不存在返回 null参考的是 Class 类对象 对应的 .class 字节码文件 所在的路径F: \ IdeaProjects \ workspace \ review \ reflect \ target \ classes \ com \ csdn \ clz \ Person.class因为我创建的 是 Maven 工程所以编译以后的文件在 target 里面所以只要把 我们要读取的文件放在 clz 这个文件夹里面就可以读取到其实就是和 Person.class字节码文件在同一个文件夹下就可以被读取到如果不是 Maven 工程编译以后的文件在 out 文件夹里F: \ IdeaProjects \ workspace \ review \ reflect \ target \classes \ com \ csdn \ clz \ reflect.txt package com.csdn.clz;
import com.csdn.pojo.Student;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.*;/*** 使用 类对象 读取文件*/
public class LoaderDemo3 {public static void main(String[] args) throws IOException {File file new File(b.txt);file.createNewFile();System.out.println(file.getAbsolutePath());//F:\IdeaProjects\workspace\review\b.txt// new File(reflect/src/main/java/com/csdn/clz/reflect.txt).createNewFile();//相对路径项目的根目录开始查找FileInputStream fis new FileInputStream(b.txt);System.out.println(fis);//java.io.FileInputStream776ec8dfClassPerson clz Person.class;InputStream stream1 clz.getResourceAsStream(b.txt);System.out.println(stream1);//nullClassPerson per Person.class;InputStream inputStream per.getResourceAsStream(reflect.txt);System.out.println(inputStream);//java.io.BufferedInputStream7ba4f24fClassStudent stu Student.class;InputStream inputStream1 stu.getResourceAsStream(../clz/reflect.txt);System.out.println(inputStream1);//java.io.BufferedInputStream3b9a45b3}
}
Data
NoArgsConstructor
AllArgsConstructor
class Person {private String name;private int age;
}