问题是这样的:
在一个web应用下,假设目录结构如下:
└─web_root
├─WEB-INF
│ ├─tld
│ ├─lib
│ └─classes
│ └─com
│ ├─corporation
│ └─util(要读文件的class放在这个目录下)
├─appmain
├─pub
│ ├─js
│ └─ccs
└─myFile(被读的文件放在这个目录下)
我在util目录下放一个java程序,要读myFile目录下的一个文本文件,我怎么才能读到这个文件呢?
如何能做到不管我的web应用放在什么位置,都能读到这个文件呢?
请告诉给出思路和示例代码,谢谢!!
在一个web应用下,假设目录结构如下:
└─web_root
├─WEB-INF
│ ├─tld
│ ├─lib
│ └─classes
│ └─com
│ ├─corporation
│ └─util(要读文件的class放在这个目录下)
├─appmain
├─pub
│ ├─js
│ └─ccs
└─myFile(被读的文件放在这个目录下)
我在util目录下放一个java程序,要读myFile目录下的一个文本文件,我怎么才能读到这个文件呢?
如何能做到不管我的web应用放在什么位置,都能读到这个文件呢?
请告诉给出思路和示例代码,谢谢!!
to myth822:
我读文件的程序是普通的java类,不是servlet,因此request等无法使用。
to susu_0807:
你个的方法没有解决路径问题,好像不行吧?
如果可能的话就把request作为构造函数的参数。
如果是工具类可以作为某个静态方法的参数。
除了外部配置的CLASSPATH里面的jar,还有就是那个点代表的当前路径。
点代表的当前路径就是你这个类所在的包的根目录,也就是classes目录,所有这里里面的目录结构都可以通过this.getClass().getResource("/xxx");来得到,“/”表示classes目录。你现在需要的路径是classes上层的了,所以不通过request得到web环境就不太可能找到那个文件了。
InputStream is = url.openStream();ip,应用名,目录可以从配置文件中获得主要是路径的问题,至于怎么读取文件就没什么好说的了。
filePath = filePath.substring(0, filePath.indexOf("WEB-INF")-1);
File file = new File(filePath+File.separator+"myfile");
....