如何在不指定绝对路径的情况下从另一个java包中读取文件(例如txt文件)?
我已将非java文件存储在一个包中。 我想从这个包中读取文件而不指定文件的绝对路径(例如C:\ etc \ etc …)。 我该怎么做?
使用getResourceAsStream
例如:
MyClass.class.getResourceAsStream("file.txt");
如果它与MyClass
在同一个包中,将打开file.txt
也:
MyClass.class.getResourceAsStream("/com/foo/bar/file.txt");
将在com.foo.bar
包上打开file.txt
祝你好运! 🙂
首先,确保您的文件所包含的包在您的应用程序的类路径中。虽然您没有指定文件的路径,但您仍然需要获取文件的路径来读取它们。您知道所有文件的名称和包姓名(或名称)? 如果是这样,您可以尝试这样来获取文件的url:
public class Test { public static void main(String[] args) throws Exception { URL f = Test.class.getClassLoader().getResource("resources/Test.txt"); System.out.println(f); } }
上面的代码在名为“resources”的另一个包中获取文件’Test.txt’的url。
- 如何将Firebase RecyclerView放在另一个RecyclerView中
- View.getId和R.id.viewLabel返回不同的值
- java.lang.NullPointerException:尝试在空对象引用上调用虚方法’android.view.View android.view.View.findViewById(int)’
- 如何更改android中每个pdf页面的标题
- java.lang.OutOfMemoryError:在OOM之前分配分配失败
- 如何找到多个点的中心? Android的
- 在java中调用跟踪
- 位图OutOfMemoryError
- 使用Iframe网站的Android应用程序的进度状态