zoukankan      html  css  js  c++  java
  • io--最后一次

           每一次写流,都要看一边io的api,不是叔不会,只是记不住....希望这是最后一次

    File类      在我映像里我一直通过File来创建文件...作为面向对象的程序猿,我认为File代表文件,而还有个FilePath之类的生物代表File的路径
    1.File与FilePath
    稍微看下api我就知道我错了,but why?难道我面向错了?迷茫的时候上度娘(java File),第一篇看见如下栗子


    次奥,你逗我,叔赖好知道后缀只是给人看的,程序是靠协议/解析来决定读取的生物种族的,比如:
    这或是图片(至少博客园的上传不是通过后缀来判断的)这货是快捷方式这货是pdf
    或许到这个时候你就跟叔一样,秒懂,来个简单的测试

    原来如此,所以我们可以假设本身操作系统就没法再路径上区分文件,那File类与FilePath类就很难或者没有必要再进行区分了,一个Path既可以代表File也可以代表FilePath--

    2.创建File与api
           看到创建的时候,我又秒懂了,他们在构造函数中区分File+FilePath或者相对什么路径+其他路径(就是这么个意思),只有3点有意思
    1.File提供的parent路径名字符串和child非常爽,下次使用的时候可以吓小伙伴们一跳,要知道,他们还是new File(parent+path),来实现的
    2.File使用parent路径名字符串和child来构造,那么这个File的getParent() 是什么呢?  试试吧,简单的名字重复而已,没太大歧义,跟其他的一样
    3.isAbsolute很有意思,根据判断方式比较独特,其他的类似,这些东西可以拿来虐菜

    new File("F:").isAbsolute():false
    new File("F:\").isAbsolute():true

    3.特殊字符
          叔在window下创建文件的时候多次被提醒特殊字符不可作为文件名...不过通过程序的话,说不定就可以,反射什么的跟这个不是很像吗?(破坏封装)而且双引号,转意符的存在应该也不会再有歧义什么的了,但是我失败了,你都不用操心绕过判断什么的,直接不让创建....
          首先假设可视化操作系统还是得靠命令执行,或许通过cmd创建几个文件基本上就确定这些特殊字符
    1.     :路径分割符...不是转义符,如果真能转移,我觉得就能加入特殊字符了
    2./     :同上...传说中的容错写法
    3.*  ? :通配符,window右上角的搜索就可以用这个,无解
    4.<>| :重定向输入和输出数据流的可以开头的操作符...叔一天毛都没干,光在cmd上玩这个,弄完感觉智商被压制了....
    5.:     :window下盘符关键字(前面说有意思就在这,window下绝对为毛路径不用:来决定?反正不咋用的方法,以后慢慢理解,至于linux,你懂得)
    6."     :允许空格命名的后遗症,换句话说,空格和上面的特殊服都可以阻止/改变命令,但我们需要空格不能时...

         这些应该算操作系统的解析,或许搞个操作系统就可以完全无视这些逗比了

  • 相关阅读:
    SilverLight使用WCF RIA SERVICE实现对数据库的操作 (添加,删除,更新)
    c# 创建、读取、添加、修改xml文件
    Winform 下载文件进度条设计
    WOrd ,excel实现打印功能
    码云与Git的使用
    while循环和字符串格式化
    python环境搭建
    python简介与简单入门
    整型与布尔的转换、字符串的切片和几个常用的方法
    python2与python3的区别
  • 原文地址:https://www.cnblogs.com/liuCy/p/3873255.html
Copyright © 2011-2022 走看看