该jar中含有一个test.txt. 我如何通过java程序来读取该jar的test.txt的内容呢?
另外,我的jar会被部署到某个陌生环境下的tomcat下
该jar的绝对目录会是未知的
那么我该如何通过java来找到jar中的test.txt呢?有如何读取其内容呢?
鄙人才学疏浅,各位能否从
1. System大类族中找到解决方案?
2. 反射中找到解决方案?
3. JMX中找到解决方案?
3 个解决方案
#1
包含txt文件的jar包,这个应该是你自己写的类打包的Jar吧。你可以写一个辅助类放入jar包中,并规范jar中只能在某目录中存放txt文件。然后辅助类中提供一个接口供外界调用。外界通过传入一个文件名称或相对路径,由该类自己去获取相应的输入流提供给外界操作。
PS:你这个操作实际项目中很少会这么干=。=
PS:你这个操作实际项目中很少会这么干=。=
#2
貌似Java已经有解决方案了。
比如读取com.my.test包下的test.txt文件:
像这样,能读取到加入classpath中的资源。(我是在SE中试的,应该在Tomcat里面也能用)。
比如读取com.my.test包下的test.txt文件:
Scanner sc = new Scanner(ClassLoader.getSystemClassLoader().getResourceAsStream("com/my/test/test.txt"));
while(sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
sc.close();
像这样,能读取到加入classpath中的资源。(我是在SE中试的,应该在Tomcat里面也能用)。
#3
学习了~~~
#1
包含txt文件的jar包,这个应该是你自己写的类打包的Jar吧。你可以写一个辅助类放入jar包中,并规范jar中只能在某目录中存放txt文件。然后辅助类中提供一个接口供外界调用。外界通过传入一个文件名称或相对路径,由该类自己去获取相应的输入流提供给外界操作。
PS:你这个操作实际项目中很少会这么干=。=
PS:你这个操作实际项目中很少会这么干=。=
#2
貌似Java已经有解决方案了。
比如读取com.my.test包下的test.txt文件:
像这样,能读取到加入classpath中的资源。(我是在SE中试的,应该在Tomcat里面也能用)。
比如读取com.my.test包下的test.txt文件:
Scanner sc = new Scanner(ClassLoader.getSystemClassLoader().getResourceAsStream("com/my/test/test.txt"));
while(sc.hasNextLine()) {
System.out.println(sc.nextLine());
}
sc.close();
像这样,能读取到加入classpath中的资源。(我是在SE中试的,应该在Tomcat里面也能用)。
#3
学习了~~~