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 (
Stringkey) は、指定されたキーを使用して、この
propertyリスト内のプロパティ を検索します。つまり、パラメータ key を通じて、key に対応する値が取得されます。 2. load (InputStream inStream) は、入力ストリームからプロパティ (キーと要素のペア) のリストを読み取ります。指定したファイル (上記の test.properties ファイルなど) をロードして、そのファイル内のすべてのキーと値のペアを取得します。 getProperty(文字列キー)を検索する場合。 3. setProperty (文字列キー、文字列値)、Hashtable メソッド put を呼び出します。基本クラスの put メソッドを呼び出して、キーと値のペアを設定します。
4. store (OutputStream out、文字列コメント) は、load メソッドを使用して Properties テーブルにロードするのに適した形式で、この Properties テーブルから出力ストリームにプロパティのリスト (キーと要素のペア) を書き込みます。ロード メソッドとは対照的に、このメソッドはキーと値のペアを指定されたファイルに書き込みます。 5.clear ()、ロードされたすべてのキーと値のペアをクリアします。このメソッドは基本クラスで提供されます。
Java でプロパティ ファイルを読み取る方法はたくさんありますが、最も一般的に使用される方法は、java.lang の getResourceAsStream(String name) を使用する方法です。 Class
class ) メソッドは、次のように呼び出すことができます:InputStream in = getClass().getResourceAsStream("资源Name");作为我们写程序的,用此一种足够。
InputStream in = new BufferedInputStream(new FileInputStream(filepath));
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); } } }
キーに従って値を読み取ります
プロパティのすべての情報を読み取ります新しいプロパティ情報を書き込みます
//关于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 サイトの他の関連記事を参照してください。