筆記

          way

          路徑斜杠處理

          為了跨平臺分割路徑斜杠。
          1.java中\(zhòng)\表示一個\,所以要分割c:\a\document\c.gif這樣的路徑,需要split("\\\\"),考慮到linux系統(tǒng),一般可以使用
              filePath.replaceAll("\\\\","/").split("/")來處理。
          2.為了更好的跨平臺,可以考慮
              String[] subDirs = path.split(File.separator);
              但這種方式是不行的,這里的參數(shù)需要的是一個正則表達式,而Windows系統(tǒng)File.separator是“\”,這是轉(zhuǎn)義字符不能使用。可以使用
          Pattern.quote:path.split(Pattern.quote(File.separator));還有注意使用
          Matcher.quoteReplacement,示例:
           System.out.println(
                  "O.M.G.".replaceAll(".", "!")
              ); // prints "!!!!!!"

              System.out.println(
                  "O.M.G.".replaceAll(Pattern.quote("."), "!")
              ); // prints "O!M!G!"

              System.out.println(
                  "Microsoft software".replaceAll("so", "$0")
              ); // prints "Microsoft software"

              System.out.println(
                  "Microsoft software".replaceAll("so", Matcher.quoteReplacement("$0"))
              ); // prints "Micro$0ft $0ftware"
          注意:使用File.separator跨平臺時注意代碼jvm的平臺可能和要處理路徑的平臺不同,所以使用類似
          filePath.lastIndexOffilePath(File.separator)來處理路徑是存在bug的,如果filePath=“/home/a/b”,而代碼是在windows上運行,返回-1.
          apache的commons-io 包中的FilenameUtils類有很多方法處理路徑問題。



             

          posted on 2011-06-15 14:47 yuxh 閱讀(899) 評論(0)  編輯  收藏 所屬分類: jdkwork

          導航

          <2011年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 苗栗市| 衢州市| 通许县| 岚皋县| 寿宁县| 当涂县| 祥云县| 昆山市| 六枝特区| 米泉市| 都安| 临夏市| 奎屯市| 玉田县| 香港 | 屯门区| 出国| 天镇县| 阿尔山市| 枣庄市| 鄄城县| 汝南县| 张家港市| 文成县| 大宁县| 甘德县| 错那县| 桓台县| 来安县| 曲周县| 永州市| 土默特右旗| 彭水| 东丰县| 冷水江市| 和田县| 鄂伦春自治旗| 麻阳| 河间市| 大港区| 东乌珠穆沁旗|