java操作时,对于文件的路径一直不是很清楚,还有就是相对路径和绝对路径,最重要的是windows系统的转义字符的问题。能否详细的说说。

解决方案 »

  1.   

    路径问题,楼主不需要关心转义字符, 全部用 "/" 号代替就是了. java会自动帮你处理 如: path = "c:/folder1/folder2/aa.txt" 
    你用"/" 代替 "\" 在windows及linux下都可以通用
      

  2.   

    JAVA.IO.FILE里有静态字段...自己去找..
      

  3.   

    File.separator 与系统有关的默认名称分隔符
      

  4.   

    JDK开发者为了实现java的平台无关性现在路径都用“/”new File()的就是文件的路径
      

  5.   

    关于相对路径和绝对路径,可以看一下面的程序.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");