Java getResourceAsStream()从不同项目中的文件读取时返回null
txt存在于不同的java项目中(比如说项目1,存在于本地机器中)。 我还有另一个java项目(比如说项目2,也存在于本地机器中),我想从中使用getResourceAsStream读取此文件内容 但是,只有当File.txt与SomeClassName.java存在于同一文件夹中(即两者都存在于项目2中)时,它才会初始化InputStream,否则返回null(未找到路径) 我尝试使用文件的绝对路径,但不起作用 文本文件路径格式-Java getResourceAsStream()从不同项目中的文件读取时返回null,java,file,inputstream,classloader,getresource,Java,File,Inputstream,Classloader,Getresource,txt存在于不同的java项目中(比如说项目1,存在于本地机器中)。 我还有另一个java项目(比如说项目2,也存在于本地机器中),我想从中使用getResourceAsStream读取此文件内容 但是,只有当File.txt与SomeClassName.java存在于同一文件夹中(即两者都存在于项目2中)时,它才会初始化InputStream,否则返回null(未找到路径) 我尝试使用文件的绝对路径,但不起作用 文本文件路径格式- /Users/userName/RepoName/Projec
/Users/userName/RepoName/Project1/src/main/resources/file.txt
我无法将文件.txt从项目1移动到项目2
关于如何解决这个问题有什么想法吗
注意-当我在SomeClassName.java(在项目2中)中编写一个方法来读写file.txt(在项目1中)的内容时,它工作得很好
示例-如果我调用该方法
readFile(textFilePath);
String textFilePath = "/absolute/path/to/file.txt";
readFile定义为-
private static void readFile(String propFile) throws IOException {
// TODO Auto-generated method stub
InputStream is = new FileInputStream(propFile);
BufferedReader buf = new BufferedReader(new InputStreamReader(is));
String line = buf.readLine();
StringBuilder sb = new StringBuilder();
while(line != null) {
sb.append(line).append("\n");
line = buf.readLine();
}
String fileAsString = sb.toString();
System.out.println("Contents : " + fileAsString);
}
它可以很好地读取和打印文件内容 资源名不是文件名,不能指定绝对路径,它总是根据类加载器(searchpath)解析。如果定义IDE依赖项或将另一个项目添加到类路径,它将找到名称(如果资源名称是该项目中的绝对或相对包),请确保另一个项目位于类路径上或使用文件而不是资源
private static void readFile(String propFile) throws IOException {
// TODO Auto-generated method stub
InputStream is = new FileInputStream(propFile);
BufferedReader buf = new BufferedReader(new InputStreamReader(is));
String line = buf.readLine();
StringBuilder sb = new StringBuilder();
while(line != null) {
sb.append(line).append("\n");
line = buf.readLine();
}
String fileAsString = sb.toString();
System.out.println("Contents : " + fileAsString);
}