File.txt существует в другом проекте Java (скажем, Project 1, присутствует на локальном компьютере).
У меня есть другой Java-проект (скажем, Project 2, также присутствующий на локальной машине), из которого я хочу прочитать содержимое этого файла, используя getResourceAsStream .
Однако, только если File.txt существует в той же папке, что и SomeClassName.java (т.е. оба существуют в Project 2), он инициализирует InputStream, иначе возвращает ноль (путь не найден).
String textFilePath = "/absolute/path/to/file.txt";
ClassLoader clTest = SomeClassName.class.getClassLoader();
InputStream isTest = clTest.getResourceAsStream(textFilePath);
Я пытался использовать абсолютный путь файла, но он не работает.
textFilePath format-
/Users/userName/RepoName/Project1/src/main/resources/file.txt
Я НЕ МОГУ переместить file.txt из Project1 в Project 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);
}
Он прекрасно читает и печатает содержимое файла.