posts - 30,  comments - 50,  trackbacks - 0
          最笨最實在思路最全面的做法,用于最基礎的代碼鍛煉非常有效,推薦給大家打打java底^_^
          package cn.net.withub.xfgl.common; 

          /** 
          @author YuLuo 
          */
           

          import java.io.File; 
          import java.io.FileInputStream; 
          import java.io.FileNotFoundException; 
          import java.io.FileOutputStream; 
          import java.io.IOException; 
          import java.io.InputStream; 
          import java.util.Properties; 
          //前一篇已介紹此方法 
          import cn.net.withub.xfgl.common.ToUnicode; 

          public class CreatePro 
          //讀文件 
          public static String readFile(String filePath, String parameterName) throws IOException, FileNotFoundException 
              String result 
          = null
              File file 
          = new File(filePath); 
                 
          if (file.exists()) 
                  FileInputStream fis 
          = new FileInputStream(file); 
                 
          byte[] b = new byte[fis.available()]; 
                  fis.read(b); 
                  result 
          = new String(b, "UTF-8"); 
                  fis.close(); 
              }
           
             
          return result; 
          }
           
          //修改后存儲 
          public static void saveFile(String content, String path, String fileName) throws IOException 
              File f 
          = new File(path); 
             
          if (!f.exists()) 
                  f.mkdirs(); 
              }
           
              File fn 
          = new File(f, fileName); 
              FileOutputStream fos 
          = new FileOutputStream(fn); 
              fos.write(content.getBytes()); 
              fos.close(); 
          }
           
          //刪除舊文件 
          public static void deleteFile(String path) throws IOException 
              File f 
          = new File(path); 
             
          if (f.exists()) 
                  f.delete(); 
          }
           else 
                 
          throw new IOException("未找到相關文件"); 
              }
           
          }
           
          //執行方法 
          public static boolean writeProperties(String filePath, String parameterName, String parameterValue) 
             
          boolean flag = false
             
          try 
                 
          //取得文件所有內容 
                 
          String all = CreatePro.readFile(filePath, parameterName); 
                  String result 
          = null
                 
          //如果配置文件里存在parameterName 
                 
          if (all.indexOf(parameterName) != -1
                     
          //得到parameterName前的字節數 
                     
          int a=all.indexOf(parameterName); 
                     
          //取得以前parameterName的值 
                     
          String old = readProperties(filePath, parameterName); 
                     
          //得到parameterName值前的字節數 
                     
          int b=a+(parameterName.length()+"=".length()); 
                     
          //新的properties文件所有內容為:舊的properties文件中內容parameterName+"="+新的parameterName值(parameterValue)+舊的properties文件中parameterName值之后的內容 
                     
          result=all.substring(0,a)+parameterName+"="+parameterValue+all.substring(b+ToUnicode.convert(old).length(),all.length()); 
                  }
           
                 
          //刪除以前的properties文件 
                
          CreatePro.deleteFile(filePath); 
                 
          //存儲新文件到以前位置 
                 
          String[] arrPath = filePath.split("WEB-INF"); 
                  String path 
          = arrPath[0]+"WEB-INF\\configs"
                  CreatePro.saveFile(result, path, 
          "xf.properties"); 
                  flag
          =true
          }
           catch (IOException e) 
                  e.printStackTrace(); 
                  flag
          =false
              }
           
             
          return flag; 
          }
           
          //Properties方法寫properties文件 
          /*Properties prop = new Properties(); 
          try { 
          InputStream fis = new 
          FileInputStream(filePath); 
          //從輸入流中讀取屬性列表(鍵和元素對) prop.load(fis); 
          //調用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。 
          //強制要求為屬性的鍵和值使用字符串。返回值是 Hashtable 調用 put 的結果。 
          OutputStream fos = new FileOutputStream(filePath); 
          prop.setProperty(parameterName,parameterValue); 
          //以適合使用 load 方法加載到 Properties 表中的格式, 
          //將此Properties 表中的屬性列表(鍵和元素對)寫入輸出流 
          prop.store(fos, "Update '" + parameterName + "' value \n"); 
          falg = true; 
          }catch (IOException e) { 
          e.printStackTrace(); 
          System.err.println("Visit " + filePath + " for updating " + parameterName + " value error"); 
          falg = false; 
          }
          */
           
          //讀properties文件,Properties方法 
          public static String readProperties(String filePath, String parameterName) 
              String value 
          = ""
              Properties prop 
          = new Properties(); 
             
          try 
                  InputStream fis 
          = new FileInputStream(filePath); 
                  prop.load(fis); 
                  value 
          = prop.getProperty(parameterName); 
              }
           catch (IOException e) 
                  e.printStackTrace(); 
              }
           
             
          return value; 
          }
           
          posted on 2007-07-31 16:24 心。 閱讀(2470) 評論(2)  編輯  收藏 所屬分類: java
          主站蜘蛛池模板: 南京市| 平舆县| 河曲县| 垦利县| 安康市| 织金县| 谢通门县| 陵水| 邮箱| 巴彦淖尔市| 庆安县| 博湖县| 南召县| 浦江县| 屏东市| 远安县| 沾益县| 嘉荫县| 白玉县| 徐汇区| 珠海市| 阿拉尔市| 海林市| 祁东县| 奉节县| 曲周县| 大丰市| 兖州市| 扶绥县| 白水县| 中卫市| 牙克石市| 林西县| 望奎县| 扎鲁特旗| 房产| 红河县| 衡东县| 芮城县| 承德市| 内丘县|