筆記

          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)計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 辽源市| 罗田县| 文化| 资阳市| 池州市| 南部县| 盘锦市| 大理市| 达孜县| 新宾| 基隆市| 嘉兴市| 绥滨县| 黄浦区| 沂南县| 福清市| 南城县| 买车| 柞水县| 田东县| 察隅县| 扶绥县| 大石桥市| 涿州市| 资兴市| 乌拉特中旗| 姚安县| 余江县| 海原县| 尚志市| 莱西市| 格尔木市| 新乡市| 湄潭县| 丽水市| 汶上县| 安徽省| 漯河市| 罗田县| 青岛市| 息烽县|