<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    甜咖啡

    我的IT空間

    2013年3月22日

    Java遍歷Map
    public static void main(String[] args) {

      Map<String, String> map = new HashMap<String, String>();
      map.put("1", "value1");
      map.put("2", "value2");
      map.put("3", "value3");
      
      //第一種:普遍使用,二次取值
      System.out.println("通過Map.keySet遍歷key和value:");
      for (String key : map.keySet()) {
       System.out.println("key= "+ key + " and value= " + map.get(key));
      }
      
      //第二種
      System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
      Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
      while (it.hasNext()) {
       Map.Entry<String, String> entry = it.next();
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }
      
      //第三種:推薦,尤其是容量大時
      System.out.println("通過Map.entrySet遍歷key和value");
      for (Map.Entry<String, String> entry : map.entrySet()) {
       System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
      }

      //第四種
      System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
      for (String v : map.values()) {
       System.out.println("value= " + v);
      }
     }

    Java遍歷Set

    對 set 的遍歷  
    1.迭代遍歷:  
    Set<String> set = new HashSet<String>();  
    Iterator<String> it = set.iterator();  
    while (it.hasNext()) {  
      String str = it.next();  
      System.out.println(str);  
    }  
      
    2.for循環(huán)遍歷:  
    for (String str : set) {  
          System.out.println(str);  
    }  
      
      
    優(yōu)點還體現(xiàn)在泛型 假如 set中存放的是Object  
      
    Set<Object> set = new HashSet<Object>();  
    for循環(huán)遍歷:  
    for (Object obj: set) {  
          if(obj instanceof Integer){  
                    int aa= (Integer)obj;  
                 }else if(obj instanceof String){  
                   String aa = (String)obj  
                 }  
                  ........  
    }  

    當(dāng)一個人找不到出路的時候,最好的辦法就是將當(dāng)前能做好的事情做到極致,做到無人能及。
    posted @ 2013-04-03 12:12 甜咖啡 閱讀(17196) | 評論 (0)編輯 收藏

    今天在研究了一下關(guān)于ORACLE的導(dǎo)入導(dǎo)出的功能,周五快要下班的時候給同事新建一個表空間,將同一個數(shù)據(jù)庫中的某個用戶下的表導(dǎo)入新的表空間上,建好表空間和用戶后,直接用 exp ,imp 來導(dǎo)入數(shù)據(jù)到新的表空間,查是發(fā)現(xiàn)后來導(dǎo)入的數(shù)據(jù)還在原來的表空間上,(周五那天的我是用工具編輯DMP文件,修改里的表空間名后導(dǎo)入的),后來想起來了eygle的書上寫了關(guān)于這個的問題,于是今天就來試驗了一下。

    第一種:修改用戶的一些權(quán)限。

    首先使用sytem帳戶登陸

    --創(chuàng)建新表空間的用戶

    SQL> create user pangzi identified by pangzi default tablespace pangzi temporary tablespace temp;

    用戶已創(chuàng)建。

    --授給新用戶一般的權(quán)限

    SQL> grant export full database to pangzi;

    授權(quán)成功。

    SQL> grant import full database to pangzi;

    授權(quán)成功。

    SQL> grant connect,resource to pangzi;

    授權(quán)成功。

    SQL> grant create procedure to pangzi;

    授權(quán)成功。

    SQL> grant create job to pangzi;

    授權(quán)成功。

    SQL> grant create view to pangzi;

    授權(quán)成功。

    SQL> grant create synonym to pangzi;

    授權(quán)成功。

    --從這里開始將是增加的,為了使導(dǎo)入的數(shù)據(jù),不放在原來的表空間上

    SQL> grant dba to pangzi;

    --收回用戶的umlimited tablespace權(quán)限

    SQL> revoke unlimited tablespace from pangzi;

    --設(shè)置新創(chuàng)建的用戶可使用syb表空間的大小0(原數(shù)據(jù)所在的表空間為syb)

    SQL> alter user pangzi quota 0 on syb;

    --設(shè)置新創(chuàng)建的用戶可使用pangzi表空間的大小不限制

     

    SQL> alter user pangzi quota unlimited on pangzi;

    --收回DBA權(quán)限

    SQL> revoke dba from pangzi;

    執(zhí)行導(dǎo)入數(shù)據(jù)

    C:\Users\dyspangzi>imp pangzi/pangzi@testdev file=syb.dmp full=y

     

    Import: Release 10.2.0.3.0 - Production on 星期六 4月 21 17:48:54 2012

     

    Copyright (c) 1982, 2005, Oracle.  All rights reserved.

     

     

    連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

     

    經(jīng)由常規(guī)路徑由 EXPORT:V10.02.01 創(chuàng)建的導(dǎo)出文件

     

    警告: 這些對象由 SYB 導(dǎo)出, 而不是當(dāng)前用戶

     

    已經(jīng)完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導(dǎo)入

    . 正在將 SYB 的對象導(dǎo)入到 PANGZI

    . . 正在導(dǎo)入表                     "ALL_SALES"導(dǎo)入了         360 行

    . . 正在導(dǎo)入表                       "COUPONS"導(dǎo)入了           6 行

    . . 正在導(dǎo)入表                     "CUSTOMERS"導(dǎo)入了           5 行

    . .中間部分內(nèi)容省略,都是導(dǎo)入的信息

     

     

    . . 正在導(dǎo)入表                      "REG_EXPS"導(dǎo)入了           1 行

    . . 正在導(dǎo)入表                 "SALARY_GRADES"導(dǎo)入了           4 行

    即將啟用約束條件...

    成功終止導(dǎo)入, 沒有出現(xiàn)警告。

    導(dǎo)入成功,我們看導(dǎo)的表已經(jīng)在新的表空間中了

    SQL> show user
    USER 為 "PANGZI"
    SQL> select table_name,tablespace_name from user_tables;

    TABLE_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------
    DYSPANGZI                      PANGZI
    CUSTOMERS                      PANGZI
    PRODUCT_TYPES                  PANGZI
    PRODUCTS                       PANGZI
    PURCHASES                      PANGZI
    EMPLOYEES                      PANGZI
    SALARY_GRADES                  PANGZI
    PURCHASES_WITH_TIMESTAMP       PANGZI
    PURCHASES_TIMESTAMP_WITH_TZ    PANGZI
    PURCHASES_WITH_LOCAL_TZ        PANGZI
    COUPONS                        PANGZI

    TABLE_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------
    PROMOTIONS                     PANGZI
    ORDER_STATUS                   PANGZI
    PRODUCT_CHANGES                PANGZI
    MORE_PRODUCTS                  PANGZI
    MORE_EMPLOYEES                 PANGZI
    DIVISIONS                      PANGZI
    JOBS                           PANGZI
    EMPLOYEES2                     PANGZI
    ALL_SALES                      PANGZI
    PRODUCT_PRICE_AUDIT            PANGZI
    REG_EXPS                       PANGZI

    已選擇22行。                      

    第二種:使用EXPDP和IMPDP來導(dǎo)入和導(dǎo)出

           使用expdp來導(dǎo)出,首先要為一個參數(shù)來指定一個路徑——directory,expdp是在服務(wù)器端工作,導(dǎo)出的文件需要放在本地目錄,這個參數(shù)就是保存導(dǎo)出文件的位置。這個可以自己創(chuàng)建,也可以是默認(rèn)的,我自己創(chuàng)建了一個,名字是expdir

    SQL> CREATE OR REPLACE DIRECTORY expdir AS '/var/backup';

     

    目錄已創(chuàng)建。

     

    SQL> select * from dba_directories;

     

    OWNER        DIRECTORY_NAME      DIRECTORY_PATH

    -------------------   -------------------------------  -----------------------------------------

    SYS             ADMIN_DIR            /ade/aime_10.2_lnx_push/oracle/md/admin

     

    SYS             DATA_PUMP_DIR       /usr/app/oracle/product/10.2.0/db_1/rdbms/log/

     

    SYS             WORK_DIR             /ade/aime_10.2_lnx_push/oracle/work

     

    SYS             EXPDIR                /var/backup

    --給用戶授予讀寫權(quán)限

     

     

    SQL> grant read,write on directory expdir to syb;

    開始導(dǎo)出數(shù)據(jù)

    [oracle@dyspangzi ~]$ expdp dumpfile=syb.dmp directory=expdir;

    Export: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:06:46

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    Starting "SYB"."SYS_EXPORT_SCHEMA_01":  dumpfile=syb.dmp directory=expdir
    Estimate in progress using BLOCKS method...
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Total estimation using BLOCKS method: 1.375 MB
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type SCHEMA_EXPORT/TABLE/COMMENT
    Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
    Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
    Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
    Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
    Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
    Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
    Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
    . . exported "SYB"."DYSPANGZI"                           48.50 KB     659 rows
    . . exported "SYB"."ALL_SALES"                           13.68 KB     360 rows
           中間導(dǎo)出信息省略

    .  . exported "SYB"."REG_EXPS"                            5.437 KB       1 rows
    . . exported "SYB"."SALARY_GRADES"                       5.710 KB       4 rows
    . . exported "SYB"."PRODUCT_PRICE_AUDIT"                     0 KB       0 rows
    Master table "SYB"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for SYB.SYS_EXPORT_SCHEMA_01 is:
      /var/backup/syb.dmp
    Job "SYB"."SYS_EXPORT_SCHEMA_01" successfully completed at 18:07:11

     

    導(dǎo)出成功后查看一下剛才創(chuàng)建目錄里邊的內(nèi)容

    [root@dyspangzi var]# cd backup
    [root@dyspangzi backup]# ls -l
    總計 720
    -rw-r--r-- 1 oracle oinstall   3472 04-21 18:07 export.log
    -rw-r----- 1 oracle oinstall 729088 04-21 18:07 syb.dmp

    多了兩個文件,一個是日志文件一個是導(dǎo)出的數(shù)據(jù)文件,在導(dǎo)入的時候需要這兩個文件。下面開始導(dǎo)入。

    ===================================================================================

    出現(xiàn)了第一個錯誤

    [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi

    Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:45:35

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    ORA-39002: invalid operation
    ORA-39070: Unable to open the log file.
    ORA-39087: directory name EXPDIR is invalid

    出現(xiàn)了錯誤,后來發(fā)現(xiàn)這個是因為新用戶pangzi沒有對目錄的讀寫權(quán)限造成的,于是加上權(quán)限

    SQL> grant read,write on directory expdir to pangzi;

    授權(quán)成功。

    ==================================================================================

    出現(xiàn)了第二個錯誤

    [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi

    Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:47:38

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    ORA-31655: no data or metadata objects selected for job
    ORA-39154: Objects from foreign schemas have been removed from import
    Master table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
    Starting "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Job "PANGZI"."SYS_IMPORT_FULL_01" successfully completed at 18:47:41

    這個是由于原來的用戶和現(xiàn)在的不一樣了,加上這個參數(shù)就好了  remap_schema=syb:pangzi

    =====================================================================================================

    下面是沒有任何錯誤的導(dǎo)入了

    [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi

    Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:49:24

    Copyright (c) 2003, 2005, Oracle.  All rights reserved.

    Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    Master table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
    Starting "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    . . imported "PANGZI"."DYSPANGZI"                        48.50 KB     659 rows
    . . imported "PANGZI"."ALL_SALES"                        13.68 KB     360 rows
         中間部分導(dǎo)入信息省略

    . . imported "PANGZI"."PURCHASES_WITH_TIMESTAMP"         5.609 KB       1 rows
    . . imported "PANGZI"."REG_EXPS"                         5.437 KB       1 rows
    . . imported "PANGZI"."SALARY_GRADES"                    5.710 KB       4 rows
    . . imported "PANGZI"."PRODUCT_PRICE_AUDIT"                  0 KB       0 rows
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
    Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
    Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
    Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
    Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
    Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
    Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
    Job "PANGZI"."SYS_IMPORT_FULL_01" successfully completed at 18:49:37

    成功導(dǎo)入!!!!

    查看默認(rèn)的表空間

    SQL> select table_name,tablespace_name from user_tables;

    TABLE_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------
    DYSPANGZI                      PANGZI
    CUSTOMERS                      PANGZI
    PRODUCT_TYPES                  PANGZI
    PRODUCTS                       PANGZI
    PURCHASES                      PANGZI
    EMPLOYEES                      PANGZI
    SALARY_GRADES                  PANGZI
    PURCHASES_WITH_TIMESTAMP       PANGZI
    PURCHASES_TIMESTAMP_WITH_TZ    PANGZI
    PURCHASES_WITH_LOCAL_TZ        PANGZI
    COUPONS                        PANGZI

    TABLE_NAME                     TABLESPACE_NAME
    ------------------------------ ------------------------------
    PROMOTIONS                     PANGZI
    ORDER_STATUS                   PANGZI
    PRODUCT_CHANGES                PANGZI
    MORE_PRODUCTS                  PANGZI
    MORE_EMPLOYEES                 PANGZI
    DIVISIONS                      PANGZI
    JOBS                           PANGZI
    EMPLOYEES2                     PANGZI
    ALL_SALES                      PANGZI
    PRODUCT_PRICE_AUDIT            PANGZI
    REG_EXPS                       PANGZI

    已選擇22行。

    此表空間中沒有索引,所以第一種方法也沒有報錯,如果出現(xiàn)有索引的第一種方法還得增加幾步,等我明天找到周五那個數(shù)據(jù)再來再著做試驗。

    -----------------------------------------------------------

    今天特意去公司找來了那天導(dǎo)的數(shù)據(jù)庫,回來做實驗。采用第一種方法不可行,雖然說可以使用IMP  加indexs參數(shù)來導(dǎo)出一些索引,但是導(dǎo)入的時候總有莫名其妙的錯誤,估計還是我沒弄好,所以為了省事還是直接用第二種吧,方便,無錯。

    posted @ 2013-04-03 12:07 甜咖啡 閱讀(988) | 評論 (0)編輯 收藏

    1.在Oracle中可以用下面兩種:

    01: 
         create table newtable   as select * from oldtable;//用于復(fù)制前未創(chuàng)建新表newtable不存在的情況 
    02: 
          insert into newtable   select * from oldtable;//已經(jīng)創(chuàng)建了新表newtable 的情況

    注意:第一種方式只是復(fù)制了表結(jié)構(gòu),但是主鍵什么的并沒有復(fù)制進去,所以用的時候要小心在意。

    2.如果想簡單快速的復(fù)制表結(jié)構(gòu),而不需要oldtable里面的數(shù)據(jù),可以用下面的語句:

        create table newtable   as  select * from oldtable where 1=2;(把數(shù)據(jù)過濾掉)

    3.如過newtable 和oldtable的表結(jié)構(gòu)不同,可以使用下面的方式:

     create table newtable  as select  s.c1,s.c2  from oldtable s;

     

    4.如果想重新命名newtable的列名:

    在oracle中:

     create table  newtable(id,name1) as select  s.c1,s.c2  from oldtable s;

    或者

     create table  newtable as select  s.c1 ,s.c2  from oldtable s;

    在mysql中恐怕只能用第二種方式了。

    5.如果是只需要把一部分的oldtable中的數(shù)據(jù)添加到newtable中。可以這樣:

     create table newtable   as (select * from oldtable where ...);//加where過濾條件

    6.最常見的情況是id列新表中要用,并且和舊表中的不同,使用下面的語句就可以了(我們可以重新建一個sequence)

    create table yang(id,name) as select hibernate_sequence.nextval,t.ename from emp t;

    7.要注意,導(dǎo)出表的時候不能用select...into語句。

    posted @ 2013-04-03 12:05 甜咖啡 閱讀(409) | 評論 (0)編輯 收藏
    方法1:
    在shell中執(zhí)行LANG=en 將語言設(shè)為英語就可以了.SSH下很多中文都不支持.
    方法2:
    在使用ssh遠(yuǎn)程控制redhat服務(wù)器時,中文顯示為亂碼。這個問題困擾了好久,后來發(fā)現(xiàn)修改i18n這個文件能夠修正亂碼。
     
    方法如下:修改/etc/sysconfig/i18n文件,將其改成以下內(nèi)容:
    LANG="zh_CN.GB18030"
    LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
    SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
    SYSFONT="lat0-sun16"
    重啟機器,問題應(yīng)該解決了。
    方法3:
    如果你用的是putty ,你只要在字符編碼里選擇utf-8就正常了
     
    補充:這樣做的后果是,在linux啟動時,那些提示文字中文都變成了“?”符號。如果不習(xí)慣的話將ssh顯示端改成英文吧。如下:
    LANG=en_US  
    posted @ 2013-04-03 12:05 甜咖啡 閱讀(644) | 評論 (0)編輯 收藏
    一、java實現(xiàn)DES加密算法
    為了實現(xiàn)一對密鑰對整個項目所有加密解密文件都適用的方法,采用先生成一對密鑰.保存到xml文件中,以后獲得私匙和公鑰只需要從xml文件中取得就可以了.
    /**
    * 把成生的一對密鑰保存到DesKey.xml文件中
    */
    public static void saveDesKey(){     
        try {
            SecureRandom sr = new SecureRandom();
            //為我們選擇的DES算法生成一個KeyGenerator對象
            KeyGenerator kg = KeyGenerator.getInstance ("DES" );
            kg.init (sr);
            FileOutputStream fos = new FileOutputStream("C:/DesKey.xml");
          ObjectOutputStream oos = new ObjectOutputStream(fos);
            //生成密鑰
            Key key = kg.generateKey();
          oos.writeObject(key);
          oos.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
    }




    獲取密鑰方法如下:

    /**

    * 獲得DES加密的密鑰。在交易處理的過程中應(yīng)該定時更
    * 換密鑰。需要JCE的支持,如果jdk版本低于1.4,則需要
    * 安裝jce-1_2_2才能正常使用。
    * @return   Key 返回對稱密鑰
    */
        public static Key getKey() {
            Key kp = null;
            try {
                  String fileName = "conf/DesKey.xml";
                  InputStream is = DesUtil.class.getClassLoader()
                          .getResourceAsStream(fileName);
                  ObjectInputStream oos = new ObjectInputStream(is);
                  kp = (Key) oos.readObject();
                  oos.close();
            } catch (Exception e) {
                  e.printStackTrace();
            }
            return kp;
        }


    文件采用DES算法加密文件

    /**
    * 文件file進行加密并保存目標(biāo)文件destFile中

    * @param file
    *         
    要加密的文件 如c:/test/srcFile.txt
    * @param destFile
    *         加密后存放的文件名 如c:/加密后文件
    .txt
    */

    public static void encrypt(String file, String destFile) throws Exception {

            Cipher cipher = Cipher.getInstance("DES");

            cipher.init(Cipher.ENCRYPT_MODE, getKey());

            InputStream is = new FileInputStream(file);

            OutputStream out = new FileOutputStream(dest);

            CipherInputStream cis = new CipherInputStream(is, cipher);

            byte[] buffer = new byte[1024];

            int r;

            while ((r = cis.read(buffer)) > 0) {

                  out.write(buffer, 0, r);

            }

            cis.close();

            is.close();

            out.close();

        }


    文件采用DES算法解密文件


    /**
    文件file進行加密并保存目標(biāo)文件destFile中

    * @param file
    *         
    已加密的文件 如c:/加密后文件.txt
    * @param destFile
    *         解密后存放的文件名 如c:/ test/解密后文件
    .txt
    */

    public static void decrypt(String file, String dest) throws Exception {
            Cipher cipher = Cipher.getInstance("DES");
            cipher.init(Cipher.DECRYPT_MODE, getKey());
            InputStream is = new FileInputStream(file);
            OutputStream out = new FileOutputStream(dest);
            CipherOutputStream cos = new CipherOutputStream(out, cipher);
            byte[] buffer = new byte[1024];
            int r;
            while ((r = is.read(buffer)) >= 0) {
                  cos.write(buffer, 0, r);
            }
            cos.close();
            out.close();
            is.close();
        } 
    posted @ 2013-03-29 15:58 甜咖啡 閱讀(436) | 評論 (0)編輯 收藏
    1、查看操作系統(tǒng)版本和內(nèi)核版本

    #uname –a

    #more /etc/redhat-release


    2、創(chuàng)建相關(guān)目錄

    /usr/src/redhat/SOURCES //存放源代碼,補丁,圖標(biāo)等文件。


    /usr/src/redhat/SPECS //存放用于管理rpm制作進程的spec文件。


    /usr/src/redhat/BUILD //解壓后的文件存放在這里。


    /usr/src/redhat/RPMS //存放由rpmbuild制作好的二進制包。


    /usr/src/redhat/SRPMS //存放由rpmbuild制作好的源碼包。


    #mkdir -p /usr/src/redhat/

    #cd /usr/src/redhat/

    #mkdir SOURCES SPECS BUILD RPMS SRPMS


    3、下載Nginx源碼包

    下載源碼包到SOURCES目錄,不需要解壓


    #wget http://nginx.org/download/nginx-1.3.9.tar.gz


    4、手工創(chuàng)建SPEC文件

    由于spec文件是由spec語言編寫的,請注意spec語言的語法。

    #cd /usr/src/redhat/SPECS/

    #cat < nginx.spec > EOC

      

    Summary:  High Performance Web Server

      

    Name:  nginx

      

    Version:  1.3.9

      

    Release:  el5

      

    License:  GPL

      

    Group:  Applications/Server

      

    Source:  http://nginx.org/download/nginx-1.3.9.tar.gz

      

    URL:  http://nginx.org/

      

    Distribution:  Linux

      

    Packager:  JingSheng <jingsheng1@staff.sina.com.cn>

      
      

    %description

      

    nginx  [engine x] is a HTTP and reverse proxy server

      

    %prep

      

    useradd  nginx -s /sbin/nologin

      

    rm -rf  $RPM_BUILD_DIR/nginx-1.3.9

      

    zcat  $RPM_SOURCE_DIR/nginx-1.3.9.tar.gz | tar -xvf -

      

    %build

      

    cd  $RPM_BUILD_DIR/nginx-1.3.9

      

    ./configure  --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_stub_status_module  --with-http_ssl_module

      

    make

      

    %install

      

    cd  $RPM_BUILD_DIR/nginx-1.3.9

      

    make  install

      

    %preun

      

    if [ -z  "`ps aux | grep nginx | grep -v grep`" ];then

      

    killall  nginx >/dev/null

      

    exit 0

      

    fi

      

    %files

      

    /usr/local/nginx

      

    #:以#開頭是注釋,rpm會忽略它。
    Summary:簡單描述軟件。
    Name :定義rpm的名稱。
    Version: 定義軟件版本
    Release: 發(fā)行版本
    License: 定義許可證
    Group: 軟件分類
    Source: 源碼下載地址
    URL: 源碼相關(guān)網(wǎng)站
    Distribution: 發(fā)行版系列
    Packager: 打包人的信息

    scription:軟件詳細(xì)描述,可多行
    %prep :軟件編譯之前的處理,如解壓。
    %build :開始編譯軟件,如make
    %install :開始安裝軟件,如make install
    %files :指定哪些文件需要被打包,如/usr/local/nginx
    %preun :定義卸載之前的動作,如殺掉進程。


    5、開始RPM制作

    在制作RPM包之前,需要安裝必要的編譯工具

    #yum install -y gcc rpm-build pcre-devel

    開始編譯生成rpm包

    # rpmbuild-bb nginx.spec


    注意:如果安裝生成報錯,請將安裝過的東東全部去除,再重新打包


    # rpm –qpl *.rpm 查看rpm包含哪些

    posted @ 2013-03-22 09:59 甜咖啡 閱讀(629) | 評論 (0)編輯 收藏

    導(dǎo)航

    <2013年3月>
    242526272812
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    統(tǒng)計

    常用鏈接

    留言簿(1)

    我參與的團隊

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩内射激情视频在线播放免费| 亚洲国产无线乱码在线观看| 一级午夜免费视频| 免费无码又爽又刺激高潮| 亚洲二区在线视频| 91精品免费国产高清在线| 久久久久亚洲AV片无码| 精品视频在线免费观看| 久久亚洲国产成人亚| 久久免费公开视频| 中文字幕亚洲免费无线观看日本| 99视频精品全部免费观看| 91亚洲精品视频| 亚洲日本在线免费观看| 亚洲一级毛片免费看| 成年女人18级毛片毛片免费| 亚洲精品无码久久久久A片苍井空| 德国女人一级毛片免费| 亚洲av永久无码一区二区三区 | 久久亚洲国产视频| 免费h视频在线观看| 国产国拍亚洲精品mv在线观看| 亚洲精品V欧洲精品V日韩精品| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲欧美国产国产一区二区三区| 韩国二级毛片免费播放| 特级毛片全部免费播放a一级| 亚洲日本韩国在线| 精品免费视在线观看| 亚洲AV成人无码天堂| 免费va人成视频网站全| 国产午夜成人免费看片无遮挡| 亚洲国产理论片在线播放| 免费看美女让人桶尿口| 国产免费人成视频尤勿视频| 亚洲综合成人网在线观看| 四虎影院免费视频| 两个人日本WWW免费版| 亚洲午夜电影在线观看高清| 亚洲AⅤ优女AV综合久久久| 久久精品中文字幕免费|