1.如何获得当前文件路径
常用:字符串类型:System.getProperty("user.dir");
综合:
package lin.lin.lin;
import java.io.File;
public class Test {
public static void main(String[] args) throws Exception {
System.out.println(Thread.currentThread().getContextClassLoader().getResource(""));
System.out.println(Test.class.getClassLoader().getResource(""));
System.out.println(ClassLoader.getSystemResource(""));
System.out.println(Test.class.getResource(""));
System.out.println(Test.class.getResource("/"));
System.out.println(new File("").getAbsolutePath());
System.out.println(System.getProperty("user.dir"));
/*
file:/E:/workspaces/ys/WebRoot/WEB-INF/classes/
file:/E:/workspaces/ys/WebRoot/WEB-INF/classes/
file:/E:/workspaces/ys/WebRoot/WEB-INF/classes/
file:/E:/workspaces/ys/WebRoot/WEB-INF/classes/lin/lin/lin/
file:/E:/workspaces/ys/WebRoot/WEB-INF/classes/
E:\workspaces\ys
E:\workspaces\ys
*/
}
}
2.Web服务中
(1).Weblogic
WebApplication的系统文件根目录是你的weblogic安装所在根目录。
例如:如果你的weblogic安装在c:\bea\weblogic700.....
那么,你的文件根路径就是c:\.
所以,有两种方式能够让你访问你的服务器端的文件:
a.使用绝对路径:
比如将你的参数文件放在c:\yourconfig\yourconf.properties,
直接使用 new FileInputStream("yourconfig/yourconf.properties");
b.使用相对路径:
相对路径的根目录就是你的webapplication的根路径,即WEB-INF的上一级目录,将你的参数文件放在yourwebapp\yourconfig\yourconf.properties,
这样使用:new FileInputStream("./yourconfig/yourconf.properties");
这两种方式均可,自己选择。
(2).Tomcat
在类中输出System.getProperty("user.dir");显示的是%Tomcat_Home%/bin
(3).Resin
不是你的JSP放的相对路径,是JSP引擎执行这个JSP编译成SERVLET的路径为根.比如用新建文件法测试File f = new File("a.htm");
这个a.htm在resin的安装目录下
(4).如何读相对路径
在Java文件中getResource或getResourceAsStream均可
例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",这里的/代表web发布根路径下WEB-INF/classes
(5).获得文件真实路径
string file_real_path=request.getRealPath("mypath/filename");
通常使用request.getRealPath("/");
3.文件操作的类
见附件
4.按Java文件类型分类读取配置文件
配置文件是应用系统中不可缺少的,可以增加程序的灵活性。java.util.Properties是从jdk1.2就有的类,一直到现在都支持load ()方法,jdk1.4以后save(output,string) ->store(output,string)。如果只是单纯的读,根本不存在烦恼的问题。web层可以通过 Thread.currentThread().getContextClassLoader().getResourceAsStream("xx.properties") 获取;Application可以通过new FileInputStream("xx.properties");直接在classes一级获取。关键是有时我们需要通过web修改配置文件,我们不能将路径写死了。经过测试觉得有以下心得:
(1)servlet中读写。
如果运用Struts 或者Servlet可以直接在初始化参数中配置,调用时根据servlet的getRealPath("/")获取真实路径,再根据String file = this.servlet.getInitParameter("abc");获取相对的WEB-INF的相对路径。
例:
InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("abc.properties");
Properties prop = new Properties();
prop.load(input);
input.close();
OutputStream out = new FileOutputStream("filepath");
prop.setProperty("abc", "test");
prop.store(out, "–test–");//-test-为注释
out.close();
(2)直接在jsp中操作
通过jsp内置对象获取可操作的绝对地址。
例:
// jsp页面
String path = pageContext.getServletContext().getRealPath("/");
String realPath = path+"/WEB-INF/classes/abc.properties";
分享到:
相关推荐
java文件路径获取方法应用总结,非常好
Java文件路径详解
java 文件路径小工具 谁用谁知道 管理windows下的目录文件
Java获得某个路径下的所有文件列表,并写入指定文件
java 选择文件夹 输入需要保存的文件名称 保存
本程序可以应用文件操作,通过读取文件获得输入并且将输出结果以文件形式存在目录文件夹下
Java中获取文件路径的几种方式。 关于绝对路径和相对路径
关于java 读取eclipse下文件相对路径 关于Java的文件相对路径问题一直 ...
java、servlet、jsp、class等等中如何获得所在的路径
NULL 博文链接:https://snailzhang-126-com.iteye.com/blog/512442
JAVA中如何得到文件路径.pdf
java读取配置文件 在经常更换的一些东西 就可以用配置文件
NULL 博文链接:https://704378737-qq-com.iteye.com/blog/796566
JAVA解决URL路径中含有中文的问题。无论是路径中还是文件名包含中文都可以处理。经测试验证通过。
此文档记录的是通过java程序下载文件到指定路径的方法
JAVA下载网络文件,解决路径或文件名含中文问题的工具类!
java生成excel并下载到本地(可选择保存路径),文件通过流的形式响应客户端浏览器下载到本地。
其中包括windows和linux文件路径的正则表达式;去除空格和斜杠转换的replaceall方法
用Java实现获取文件信息,可以获得文件所在的路径名,还可以获得文件的大小,