A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 静心远行 中级黑马   /  2014-1-1 16:34  /  1297 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 静心远行 于 2014-1-2 11:26 编辑

在写FileWriter类练习时发现一个小问题
FileWriter fw = new FileWriter("C:/itheima.TXT");和FileWriter fw = new FileWriter("C:\\itheima.TXT");
这两个语句都能运行成功,说明java中路径中 “/”和"\\"都能成功读写路径。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
还能这样???你确定???
回复 使用道具 举报
毕老师讲过,两个都行,就是“\”不行。
回复 使用道具 举报
可以!!没有问题!
回复 使用道具 举报
反斜线可以的,哈哈
以前一个老师讲的时候就是用/
回复 使用道具 举报
本帖最后由 zzmxhm 于 2014-1-1 21:16 编辑

操作系统使用的是与系统相关的路径,而 File 类的实例表示一个抽象的、与平台无关的、结构化的路径,这个路径在 File 类内部保存为一个 String (以下称之为抽象路径)。一个抽象路径有两个组成部分:
        1. 一个可选的与平台相关的前缀(例如 Windows 下的盘符和 Unix 下的 "/")
        2. 0或多个名字(例如 "/home/leo" 中 home 和 leo 就是名字)

创建一个 File 类的对象时,虚拟机会自动将用户提供的路径转换成正规化的(normalized)抽象路径存储在 File 类中的一个私有域中,以下是相关的源码:

  1. public class File
  2.     implements Serializable, Comparable<File>
  3. {
  4.     // 一个包可见的辅助类
  5.     static private FileSystem fs = FileSystem.getFileSystem();

  6.     // 正规化的抽象路径
  7.     private String path;

  8.     // 内部构造器,接收一个正规化的路径
  9.     private File(String pathname, int prefixLength) {
  10.         this.path = pathname;
  11.         this.prefixLength = prefixLength;
  12.     }

  13.     // 构造器,调用了 FileSystem 的 normalize 方法得到正规化的抽象路径,然后调用内部构造器,其它构造器同理
  14.     public File(String pathname) {
  15.         if (pathname == null) {
  16.             throw new NullPointerException();
  17.         }
  18.         this.path = fs.normalize(pathname);
  19.         this.prefixLength = fs.prefixLength(this.path);
  20.     }
复制代码

路径正规化就是将路径中的名字用默认的或系统支持的路径分隔符(name-separator)连接起来,默认的路径分隔符可以通过 System.getProperty("file.separator") 得到,并保存到 File 类的静态域 separator 和 separatorChar 中。因此创建 File 对象时使用 "/" 或 "\\" 作为路径分隔符都能成功。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马