黑马程序员技术交流社区

标题: 问一个关于路径的问题 [打印本页]

作者: 转身大笑面对    时间: 2013-6-8 09:13
标题: 问一个关于路径的问题
本帖最后由 转身大笑面对 于 2013-6-10 00:31 编辑

看书时,看到IO流的地方有个关于路径的疑惑。代码如下:
package Number;
import java.io.*;
public class Finputstream {

        
        public static void main(String[] args) {
                int ch;
                try{
                        FileInputStream finput=new FileInputStream("C:/Users/lenovo/Desktop/aa.txt");
                        System.out.println("读取文件中的数据");
                        ch=finput.read();
                        while(ch!=-1){
                                System.out.print((char)ch);
                                ch=finput.read();
                                
                                
                        }
                        
                        finput.close();
                }
                catch(FileNotFoundException e){
                        System.out.println(e);
                        
                }
                catch(IOException e){
                        
                        System.out.println(e);
                }
               
        }

}

其中路径为C:/Users/lenovo/Desktop/aa.txt 改成C://Users//lenovo//Desktop//aa.txt也行    但是windows系统中的路径分隔符不是“\”吗,当我把路径改成C:\Users\lenovo\Desktop\aa.txt 就无法找到文件,也就是路径不对,这其中到底有什么区别呢,希望能有人从原理上进行讲解

作者: 蚂蚁搬家    时间: 2013-6-8 09:40
单反斜杠是ASC码中转义字符开始的标记,只写一个单反斜杠,编译器并不会把它当做路径分隔符,当然找不到文件,写上两个反斜杠“\\”,就是提示编译器我的第二个反斜杠是路径分隔符。
至于正斜杠也能用,正斜杠是UNIX和LINUX中的路径分隔符,你用的是windows系统,JVM会根据你的系统自动将分隔符转换为windows的分隔符;
作者: 逝者轨迹    时间: 2013-6-8 12:15
“\”转义字符的标志,C:\Users\lenovo\Desktop\aa.txt 这样写会把U、l、D、a当作无意义字符忽略掉。
作者: hou604720966    时间: 2013-6-8 12:51
\为转意字符     改为\\
作者: 袁梦希    时间: 2013-6-9 15:19
蚂蚁搬家 发表于 2013-6-8 09:40
单反斜杠是ASC码中转义字符开始的标记,只写一个单反斜杠,编译器并不会把它当做路径分隔符,当然找不到文 ...

加油   士兵
作者: 袁梦希    时间: 2013-6-9 15:19
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}
作者: 蚂蚁搬家    时间: 2013-6-9 17:29
袁梦希 发表于 2013-6-9 15:19
加油   士兵

斑竹兄弟已经都走完流程了,我还在一边上班一边苦苦挣扎,蛋疼的心都碎了,看来只能做斑竹的学弟了!!:Q




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2