筆記

          way

          路徑斜杠處理

          為了跨平臺分割路徑斜杠。
          1.java中\\表示一個\,所以要分割c:\a\document\c.gif這樣的路徑,需要split("\\\\"),考慮到linux系統,一般可以使用
              filePath.replaceAll("\\\\","/").split("/")來處理。
          2.為了更好的跨平臺,可以考慮
              String[] subDirs = path.split(File.separator);
              但這種方式是不行的,這里的參數需要的是一個正則表達式,而Windows系統File.separator是“\”,這是轉義字符不能使用。可以使用
          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 閱讀(901) 評論(0)  編輯  收藏 所屬分類: jdkwork

          導航

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

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          博客

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 明水县| 龙门县| 邹城市| 宣城市| 肥西县| 屯门区| 大洼县| 兴安县| 波密县| 旅游| 壶关县| 滨海县| 荔浦县| 弥渡县| 攀枝花市| 泽州县| 阜新| 海原县| 娱乐| 隆安县| 兴山县| 大城县| 腾冲县| 临清市| 伊春市| 精河县| 高州市| 辉南县| 丹巴县| 神池县| 崇左市| 梨树县| 平原县| 民乐县| 阳江市| 合水县| 岫岩| 抚松县| 绍兴市| 兴山县| 房山区|