ホームページ > Java > &#&チュートリアル > Java のプロパティの簡単な紹介

Java のプロパティの簡単な紹介

黄舟
リリース: 2017-05-28 09:21:40
オリジナル
2083 人が閲覧しました

Java には比較的重要なクラス Properties (Java.util.Properties) があり、主に Java の 設定ファイル を読み取るために使用され、各言語には独自の 変数 が含まれています。これはユーザーの便宜のためにも行われ、ユーザーはプログラム自体を使わずに関連する変数の設定を変更できるようになります

それを使用せずに知識を学習することは意味がありません。実際に使われるときが来たら、もう一度最初から学習する必要があります。最近、私はいくつかのオープンソース シミュレータのソース コードを調べていました。これには、Properties クラスに関する多くの リファレンス が含まれていました。Java が長い間使用されていなかったため、これらのシミュレータのほとんどは Java で書かれており、さらにいくつかのスクリプトも書かれています。

Python

Perlなどの言語については、最後の手段としてもう一度手に入れる必要があります。 1. Java プロパティ クラス

Java には比較的重要なクラス Properties (Java.util.Properties) があり、主に Java 設定ファイルを読み取るために使用されます。各言語には、独自にサポートされている多くの変数があります。ファイルと構成ファイルは頻繁に変更されますが、これはユーザーの便宜のためにも行われており、ユーザーはプログラム自体を終了せずに関連する変数設定を変更できます。 Python でサポートされる構成ファイルは .ini ファイルです。同様に、構成ファイルを読み取るための独自のクラス ConfigParse もあり、プログラマやユーザーがこのクラスのメソッドを通じて .ini 構成ファイルを変更するのに便利です。 Java では、その設定ファイルはテキスト ファイル形式の .properties ファイルであることが多く、ファイルの内容は「キー = 値」の形式であり、テキスト アノテーション 情報に「#」を付けることができます。

Properties クラス は、次のように Hashtable から を継承します。


いくつかの主要なメソッドを提供します。

1. getProperty (

String

key) は、指定されたキーを使用して、この

property

リスト内のプロパティ を検索します。つまり、パラメータ key を通じて、key に対応する値が取得されます。 2. load (InputStream inStream) は、入力ストリームからプロパティ (キーと要素のペア) のリストを読み取ります。指定したファイル (上記の test.properties ファイルなど) をロードして、そのファイル内のすべてのキーと値のペアを取得します。 getProperty(文字列キー)を検索する場合。 3. setProperty (文字列キー、文字列値)、Hashtable メソッド put を呼び出します。基本クラスの put メソッドを呼び出して、キーと値のペアを設定します。

4. store (OutputStream out、文字列コメント) は、load メソッドを使用して Properties テーブルにロードするのに適した形式で、この Properties テーブルから出力ストリームにプロパティのリスト (キーと要素のペア) を書き込みます。ロード メソッドとは対照的に、このメソッドはキーと値のペアを指定されたファイルに書き込みます。

5.

clear ()、ロードされたすべてのキーと値のペアをクリアします。このメソッドは基本クラスで提供されます。

2. Java がプロパティ ファイルを読み取る

Java でプロパティ ファイルを読み取る方法はたくさんありますが、最も一般的に使用される方法は、java.

lang の getResourceAsStream(String name) を使用する方法です。 Class

class ) メソッドは、次のように呼び出すことができます:

InputStream in = getClass().getResourceAsStream("资源Name");作为我们写程序的,用此一种足够。
ログイン後にコピー
または、以下もよく使用されます:
InputStream in = new BufferedInputStream(new FileInputStream(filepath));
ログイン後にコピー
3. 関連する例

以下に、理解と記憶を深めるためのいくつかの例を示します。プロパティクラス。

Java 仮想マシン (JVM) には独自のシステム構成ファイル (system.properties) があり、次の方法で取得できることがわかっています。 1. JVM のシステムプロパティを取得します

 import java.util.Properties;
 public class ReadJVM {
  public static void main(String[] args) {
   Properties pps = System.getProperties();
   pps.list(System.out);
  }
 }
ログイン後にコピー

結果:

2. 新しい設定ファイル (Test.properties) を作成するだけです


name=JJ
Weight=4444
Height=3333
 
 public class getProperties {
  public static void main(String[] args) throws FileNotFoundException, IOException {
   Properties pps = new Properties();
   pps.load(new FileInputStream("Test.properties"));
   Enumeration enum1 = pps.propertyNames();//得到配置文件的名字
   while(enum1.hasMoreElements()) {
    String strKey = (String) enum1.nextElement();
    String strValue = pps.getProperty(strKey);
    System.out.println(strKey + "=" + strValue);
   }
  }
 }
ログイン後にコピー

3.

キーに従って値を読み取ります

プロパティのすべての情報を読み取ります

新しいプロパティ情報を書き込みます

 //关于Properties类常用的操作
 public class TestProperties {
  //根据Key读取Value
  public static String GetValueByKey(String filePath, String key) {
   Properties pps = new Properties();
   try {
    InputStream in = new BufferedInputStream (new FileInputStream(filePath)); 
    pps.load(in);
    String value = pps.getProperty(key);
    System.out.println(key + " = " + value);
    return value;
    
   }catch (IOException e) {
    e.printStackTrace();
    return null;
   }
  }
  
  //读取Properties的全部信息
  public static void GetAllProperties(String filePath) throws IOException {
   Properties pps = new Properties();
   InputStream in = new BufferedInputStream(new FileInputStream(filePath));
   pps.load(in);
   Enumeration en = pps.propertyNames(); //得到配置文件的名字
   
   while(en.hasMoreElements()) {
    String strKey = (String) en.nextElement();
    String strValue = pps.getProperty(strKey);
    System.out.println(strKey + "=" + strValue);
   }
   
  }
  
  //写入Properties信息
  public static void WriteProperties (String filePath, String pKey, String pValue) throws IOException {
   Properties pps = new Properties();
   
   InputStream in = new FileInputStream(filePath);
   //从输入流中读取属性列表(键和元素对) 
   pps.load(in);
   //调用 Hashtable 的方法 put。使用 getProperty 方法提供并行性。 
   //强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。
   OutputStream out = new FileOutputStream(filePath);
   pps.setProperty(pKey, pValue);
   //以适合使用 load 方法加载到 Properties 表中的格式, 
   //将此 Properties 表中的属性列表(键和元素对)写入输出流 
   pps.store(out, "Update " + pKey + " name");
  }
  
  public static void main(String [] args) throws IOException{
   //String value = GetValueByKey("Test.properties", "name");
   //System.out.println(value);
   //GetAllProperties("Test.properties");
   WriteProperties("Test.properties","long", "212");
  }
 }
ログイン後にコピー

结果:

Test.properties中文件的数据为:

#Update long name
#Sun Feb 23 18:17:16 CST 2016
name=JJ
Weight=4444
long=212
Height=3333
ログイン後にコピー

以上がJava のプロパティの簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート