java中io操作时,路径问题 java操作时,对于文件的路径一直不是很清楚,还有就是相对路径和绝对路径,最重要的是windows系统的转义字符的问题。能否详细的说说。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 路径问题,楼主不需要关心转义字符, 全部用 "/" 号代替就是了. java会自动帮你处理 如: path = "c:/folder1/folder2/aa.txt" 你用"/" 代替 "\" 在windows及linux下都可以通用 JAVA.IO.FILE里有静态字段...自己去找.. File.separator 与系统有关的默认名称分隔符 JDK开发者为了实现java的平台无关性现在路径都用“/”new File()的就是文件的路径 关于相对路径和绝对路径,可以看一下面的程序.import java.io.File;import java.io.IOException;import java.io.InputStream;import java.net.URL;public class PathTest {/** 在 E:\gamedev下执行 java org.firstgame.test.PathTest*/public static void main(String[] args) throws IOException { //得到执行时的classpath路径 /E:/workspace/FirstGame/bin/ URL url = Thread.currentThread().getContextClassLoader().getResource(""); String path = "" ; if(url != null) { path = url.getPath(); System.out.println("1:" + path); } //得到执行时的classpath路径 /E:/workspace/FirstGame/bin/ url = PathTest.class.getClassLoader().getResource(""); if(url !=null){ path = url.getPath(); System.out.println("2:" + path); } //得到执行时的classpath路径 /E:/workspace/FirstGame/bin/ url = ClassLoader.getSystemResource(""); if(url != null) { path = url.getPath(); System.out.println("3:" + path); } //执行时的应用根目录 E:\workspace\FirstGame File f = new File(""); path = f.getCanonicalPath();//标准路径,跟absolutePath只差一个文件名 System.out.println("4:" + path); //得到执行时.class所在的目录 /E:/workspace/FirstGame/bin/ url = PathTest.class.getResource(""); if(url !=null) { path = url.getPath(); System.out.println("5:" + path); } url = Thread.currentThread().getContextClassLoader().getResource("org/firstgame/test/PathTest.class"); if(url != null) { path = url.getPath(); System.out.println("6:" + path); } url = PathTest.class.getClassLoader().getResource(".project"); if(url !=null){ path = url.getPath(); System.out.println("7:" + path); } url = PathTest.class.getResource("/org/firstgame/test/PathTest.class"); if(url !=null) { path = url.getPath(); System.out.println("8:" + path); }}}系统转义字符,是指路径分隔符吗?还有换行符的问题?File.separator是与环境无关的路径分隔符.换行符要这样取,才与OS环境无关.System.getProperty("line.separator"); log4g配置问题 struts2+extjs注册问题 spring和hibernate整合出问题了 关于ibaits动态配置的问题,请教! JDBC 连接Oracle代码优化问题 java字符串问题 mysql workbench EER model 乱码 萬分火急。。。。。在線急盼。。 struts问题 在weblogic Server中添加ClassPath hibernate中的Projections.distinct怎么去除指定的重复字段 《Struts 2.1权威指南》ant的用法问题
你用"/" 代替 "\" 在windows及linux下都可以通用
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;public class PathTest {/**
在 E:\gamedev下执行
java org.firstgame.test.PathTest
*/
public static void main(String[] args) throws IOException {
//得到执行时的classpath路径 /E:/workspace/FirstGame/bin/
URL url = Thread.currentThread().getContextClassLoader().getResource("");
String path = "" ;
if(url != null) {
path = url.getPath();
System.out.println("1:" + path);
}
//得到执行时的classpath路径 /E:/workspace/FirstGame/bin/
url = PathTest.class.getClassLoader().getResource("");
if(url !=null){
path = url.getPath();
System.out.println("2:" + path);
}
//得到执行时的classpath路径 /E:/workspace/FirstGame/bin/
url = ClassLoader.getSystemResource("");
if(url != null) {
path = url.getPath();
System.out.println("3:" + path);
} //执行时的应用根目录 E:\workspace\FirstGame
File f = new File("");
path = f.getCanonicalPath();//标准路径,跟absolutePath只差一个文件名
System.out.println("4:" + path);
//得到执行时.class所在的目录 /E:/workspace/FirstGame/bin/
url = PathTest.class.getResource("");
if(url !=null) {
path = url.getPath();
System.out.println("5:" + path);
}
url = Thread.currentThread().getContextClassLoader().getResource("org/firstgame/test/PathTest.class");
if(url != null) {
path = url.getPath();
System.out.println("6:" + path);
}
url = PathTest.class.getClassLoader().getResource(".project");
if(url !=null){
path = url.getPath();
System.out.println("7:" + path);
} url = PathTest.class.getResource("/org/firstgame/test/PathTest.class");
if(url !=null) {
path = url.getPath();
System.out.println("8:" + path);
}
}}
系统转义字符,是指路径分隔符吗?还有换行符的问题?
File.separator是与环境无关的路径分隔符.换行符要这样取,才与OS环境无关.
System.getProperty("line.separator");