您的位置:

java相对路径,java相对路径转绝对路径

本文目录一览:

什么是java的相对路径和绝对路径阿 怎么访问相对路径里的文件和绝对路径里的文件

1、相对路径-顾名思义,相对路径就是相对于当前文件的路径。网页中一般表示路径使用这个方法。

2、绝对路径-绝对路径就是你的主页上的文件或目录在硬盘上真正的路径。绝对路径就是你的主页上的文件或目录

"./":代表目前所在的目录。

"../":代表上一层目录。

以"/"开头:代表根目录。

java怎么获取文件的相对路径

一个例子,如果有一个Test文件夹里面有test.java和hello.txt.如果你想用test.java操作hello.txt

只要在test.java中这样写File file=new File("hello.txt");//这样就是相对路径。如果文件结构是

Test文件夹

... |------test.java

... |------hello.txt

... |------source文件夹

................. |---------world.txt

如果想在test.java中操作world.txt。只要这样写File file=new File("source/world.txt");

另外,在web开发中/代表项目文件夹根目录,当然也有可能代替webapps,区分方法是:如果/开头的uri是给浏览器解析则/代表webapps,如果是给服务器后台解析,则代表项目文件

java中用相对路径打开文件。

1、在Java开发工具的project中使用相对路径

在project中,相对路径的根目录是project的根文件夹,在此就是repathtest文件夹了。创建文件的写法是:

File f = new File("src/com/lavasoft/res/a.txt");

File f = new File("doc/b.txt");

注意:路径不以“/”开头;

脱离了IDE环境,这个写法就是错误的,也并非每个IDE都如此。

2、通过CLASSPATH读取包内文件

读取包内文件,使用的路径一定是相对的classpath路径,比如a,位于包内,此时可以创建读取a的字节流:

InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt");

有了字节流,就能读取到文件内容了。

注意:这里必须以“/”开头;

3、看看完整的java中用相对路径打开文件测试代码:

package com.lavasoft.test; 

import java.io.*; 

/** 

* Java读取相对路径的文件 

*/ 

public class ReadFile { 

        public static void main(String[] args) { 

                readTextA_ByClassPath(); 

                readTextA_ByProjectRelativePath(); 

                readTextB_ByProjectRelativePath(); 

        } 

        /** 

         * 通过工程相对路径读取(包内)文件,注意不以“/”开头 

         */ 

        public static void readTextA_ByProjectRelativePath() { 

                System.out.println("-----------------readTextA_ByProjectRelativePath---------------------"); 

                File f = new File("src/com/lavasoft/res/a.txt"); 

                String a = file2String(f, "GBK"); 

                System.out.println(a); 

        } 

        /** 

         * 通过工程相对路径读取(包外)文件,注意不以“/”开头 

         */ 

        public static void readTextB_ByProjectRelativePath() { 

                System.out.println("-----------------readTextB_ByProjectRelativePath---------------------"); 

                File f = new File("doc/b.txt"); 

                String b = file2String(f, "GBK"); 

                System.out.println(b); 

        } 

        /** 

         * 通过CLASSPATH读取包内文件,注意以“/”开头 

         */ 

        public static void readTextA_ByClassPath() { 

                System.out.println("-----------------readTextA_ByClassPath---------------------"); 

                InputStream in = ReadFile.class.getResourceAsStream("/com/lavasoft/res/a.txt"); 

                String a = stream2String(in, "GBK"); 

                System.out.println(a); 

        } 

        /** 

         * 文件转换为字符串 

         * 

         * @param f             文件 

         * @param charset 文件的字符集 

         * @return 文件内容 

         */ 

        public static String file2String(File f, String charset) { 

                String result = null; 

                try { 

                        result = stream2String(new FileInputStream(f), charset); 

                } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                } 

                return result; 

        } 

        /** 

         * 文件转换为字符串 

         * 

         * @param in            字节流 

         * @param charset 文件的字符集 

         * @return 文件内容 

         */ 

        public static String stream2String(InputStream in, String charset) { 

                StringBuffer sb = new StringBuffer(); 

                try { 

                        Reader r = new InputStreamReader(in, charset); 

                        int length = 0; 

                        for (char[] c = new char[1024]; (length = r.read(c)) != -1;) { 

                                sb.append(c, 0, length); 

                        } 

                        r.close(); 

                } catch (UnsupportedEncodingException e) { 

                        e.printStackTrace(); 

                } catch (FileNotFoundException e) { 

                        e.printStackTrace(); 

                } catch (IOException e) { 

                        e.printStackTrace(); 

                } 

                return sb.toString(); 

        } 

}