GP Coder

Trang chia sẻ kiến thức lập trình Java

  • Java Core
    • Basic Java
    • OOP
    • Exception Handling
    • Multi-Thread
    • Java I/O
    • Networking
    • Reflection
    • Collection
    • Java 8
  • Design pattern
    • Creational Pattern
    • Structuaral Pattern
    • Behavior Pattern
  • Web Service
    • SOAP
    • REST
  • JPA
  • Java library
    • Report
    • Json
    • Unit Test
  • Message Queue
    • ActiveMQ
    • RabbitMQ
  • All
Trang chủ Java Core Collection Lớp Properties trong java

Lớp Properties trong java

Đăng vào 20/11/2017 . Được đăng bởi GP Coder . 9500 Lượt xem . Toàn màn hình

Nội dung

  • 1 Giới thiệu
  • 2 Nội dung của file .properties
  • 3 Các phương thức của lớp Properties trong java
  • 4 Ví dụ minh họa

Giới thiệu

Lớp Properties trong java được sử dụng để tạo ra đối tượng chứa cặp khóa (key) và giá trị (value) như một chuỗi. Lớp java.util.Properties là một lớp con của Hashtable.

Lớp Properties có thể được sử dụng để lấy giá trị (key) dựa trên khóa (key) của thuộc tính. Lớp Properties cung cấp các phương thức lấy dữ liệu từ các file .properties và lưu trữ dữ liệu vào file .properties. Hơn nữa, nó có thể được sử dụng để có được properties của hệ thống.

File Properties không cần biên dịch lại, nếu thông tin được thay đổi từ file .properties: Nếu có bất kỳ thông tin nào được thay đổi từ file .properties, bạn không cần phải biên dịch lại lớp java. Nó được sử dụng để lưu trữ thông tin mà sẽ được thay đổi thường xuyên.

Lớp java.util.Properties được định nghĩa như sau:


public class Properties extends Hashtable<Object,Object> {

}

Nội dung của file .properties

Một số quy định nội dung của file .properties:

  • Mỗi cặp khóa – giá trị (key-value) được viết trên một dòng, phân cách bằng dấu =.
  • Sử dụng dấu # để thêm ghi chú cho các cặp khóa – giá trị (key-value).
  • Có thể thêm trùng khóa, tuy nhiên lớp Properties chỉ lấy giá trị của khóa cuối cùng, do lớp Properties sử dụng map để lưu dữ liệu nên cặp khóa cuối cùng được giữ lại.
  • Các dòng bắt đầu bằng các ký tự ! hoặc # bị bỏ qua. Dòng trắng cũng bị bỏ qua.
  • Tên key không được chứa khoảng trắng ở giữa. Ví dụ: key 1 là không đúng, phải đặt là key1.
  • Có thể có thêm khoảng trắng ở 2 đầu của khóa và giá trị: tuy nhiên lớp Properties sẽ tự động cắt khoảng trắng ở 2 đầu của khóa, cắt khoảng trắng đầu của giá trị, khoảng trắng ở cuối giá trị vẫn giữ nguyên. Ví dụ: name=gpcoder và name = gpcoder là giống nhau.
  • Giá trị có thể kéo dài một vài dòng nếu mỗi dòng được kết thúc bởi dấu gạch chéo ngược (‘\‘). Ví dụ:
targetCities=\
    Detroit,\
    Chicago,\
    Los Angeles

Điều này tương đương với targetCities = Detroit, Chicago, Los Angeles (khoảng trắng ở đầu dòng được bỏ qua).

  • Ký tự \n, \r, và \t có thể được sử dụng.
  • Ký tự dấu gạch chéo \ ngược của anh ta phải được thay thế bằng dấu gạch chéo kếp (\\). Ví dụ: path=c:\\docs\\doc1
  • Ký tự UNICODE có thể được nhập như trong một chương trình Java, sử dụng tiền tố \u. Ví dụ: \u002c.

Ví dụ nội dung của một file .properties như sau:

# Your comment
key1=Value1
key2=Value2
keyn=Valuen 

Các phương thức của lớp Properties trong java

Lớp Properties kế thừa từ lớp Hashtable. Lớp Hashtable cài đặt Map Interface nên bạn có thể sử dụng các phương thức đã được định nghĩa của lớp HashTable và Map Interface.

Ngoài ra, lớp Properties còn cung cấp các phương thức riêng của nó như dưới đây:

Phương thứcMô tả
public void load(Reader r)Tải dữ liệu từ đối tượng Reader.
public void load(InputStream is)Tải dữ liệu từ đối tượng InputStream.
public String getProperty(String key)Trả về giá trị dựa trên key.
public void setProperty(String key,String value)Gán giá trị (value) dựa vào khóa (key).
public void store(Writer w, String comment)Lưu các thuộc tính trong đối tượng Writer.
public void store(OutputStream os, String comment)Lưu các thuộc tính trong đối tượng OutputStream.
storeToXML(OutputStream os, String comment)Lưu các thuộc tính trong đối tượng Writer để tạo tài liệu xml.
public void storeToXML(Writer w, String comment, String encoding)Lưu các thuộc tính trong đối tượng Writer để tạo ra tài liệu xml với mã hoá được chỉ định.

Ví dụ minh họa

Ví dụ đọc thông tin của file config.properties bất kỳ

Tạo một file vào thư mục gốc của project như sau:

config.properties


siteName=GP Coder
siteUrl=gpcoder.com

Viết chương trình đọc file properties trên:

PropertiesExample1.java


package com.gpcoder.collection.properties;

import java.io.FileReader;
import java.util.Properties;

public class PropertiesExample1 {
	public static void main(String[] args) throws Exception {
		// create reader object
		FileReader reader = new FileReader("config.properties");

		// crate properties object
		Properties properties = new Properties();
		properties.load(reader);

		// show file info
		System.out.println(properties.getProperty("siteName"));
		System.out.println(properties.getProperty("siteUrl"));
	}
}

Kết quả thực thi chương trình trên:

GP Coder
gpcoder.com

Ví dụ về lớp Properties lấy các thuộc tính của hệ thống

package com.gpcoder.collection.properties;

import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;

public class PropertiesExample2 {
	public static void main(String[] args) throws Exception {
		// get system properties
		Properties p = System.getProperties();
		Set<Entry<Object, Object>> set = p.entrySet();

		// show system properties
		Iterator<Entry<Object, Object>> itr = set.iterator();
		while (itr.hasNext()) {
			Map.Entry<Object, Object> entry = itr.next();
			Object key = entry.getKey();
			Object value = entry.getValue();
			System.out.println(key + " = " + value);
		}
	}
}

Kết quả thực thi chương trình trên:

java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files\Java\jdk1.8.0_131\jre\bin
java.vm.version = 25.131-b11
java.vm.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
path.separator = ;
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
.....

Ví dụ sử dụng lớp Properties để tạo file .properties

package com.gpcoder.collection.properties;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;

public class PropertiesExample3 {
	public static void main(String[] args) throws Exception {
		OutputStream output = null;
		try {
			// Properties File output at project root folder
			output = new FileOutputStream("database.config.properties");

			// create properties object
			Properties prop = new Properties();

			// set the properties value
			prop.setProperty("database", "localhost");
			prop.setProperty("dbuser", "gpcoder");
			prop.setProperty("dbpassword", "password");

			// save properties to a file
			prop.store(output, "Config Database connection");
		} catch (IOException io) {
			io.printStackTrace();
		} finally {
			if (output != null) {
				try {
					output.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

		}
	}
}

Thực thi chương trình trên, một file database.config.properties được tạo ra tại thư mục gốc của project với nội dung như sau:


#Config Database connection
#Sun Nov 19 23:12:52 ICT 2017
dbpassword=password
database=localhost
dbuser=gpcoder

Tài liệu tham khảo:

  • Giới thiệu lớp Properities
  • Quy định nội dung file Properties
  • Properties Life cycle
5.0
02
Nếu bạn thấy hay thì hãy chia sẻ bài viết cho mọi người nhé! Và Donate tác giả

Shares

Chuyên mục: Collection Được gắn thẻ: Collection

So sánh HashMap và Hashtable trong Java
Vector trong Java

Có thể bạn muốn xem:

  • So sánh Array và ArrayList trong Java (12/11/2017)
  • Lớp HashMap trong Java (17/11/2017)
  • So sánh HashMap và Hashtable trong Java (20/11/2017)
  • TreeSet và sử dụng Comparable, Comparator trong java (15/11/2017)
  • Loại bỏ các phần tử trùng trong một ArrayList như thế nào? (28/11/2017)

Bình luận

bình luận

Tìm kiếm

Bài viết mới

  • Clean code 13/01/2024
  • Giới thiệu CloudAMQP – Một RabbitMQ server trên Cloud 02/10/2020
  • Kết nối RabbitMQ sử dụng Web STOMP Plugin 19/06/2020
  • Sử dụng publisher confirm trong RabbitMQ 16/06/2020
  • Sử dụng Dead Letter Exchange trong RabbitMQ 13/06/2020

Xem nhiều

  • Hướng dẫn Java Design Pattern – Factory Method (97351 lượt xem)
  • Hướng dẫn Java Design Pattern – Singleton (96987 lượt xem)
  • Giới thiệu Design Patterns (86649 lượt xem)
  • Lập trình đa luồng trong Java (Java Multi-threading) (85488 lượt xem)
  • Giới thiệu về Stream API trong Java 8 (83026 lượt xem)

Nội dung bài viết

  • 1 Giới thiệu
  • 2 Nội dung của file .properties
  • 3 Các phương thức của lớp Properties trong java
  • 4 Ví dụ minh họa

Lưu trữ

Thẻ đánh dấu

Annotation Authentication Basic Java Behavior Pattern Collection Creational Design Pattern Cấu trúc điều khiển Database Dependency Injection Design pattern Eclipse Exception Executor Service Google Guice Gson Hibernate How to Interceptor IO Jackson Java 8 Java Core JDBC JDK Jersey JMS JPA json JUnit JWT Message Queue Mockito Multithreading OOP PowerMockito RabbitMQ Reflection Report REST SOAP Structuaral Pattern Swagger Thread Pool Unit Test Webservice

Liên kết

  • Clean Code
  • JavaTpoint
  • Refactoring Guru
  • Source Making
  • TutorialsPoint
  • W3Schools Online Web Tutorials

Giới thiệu

GP Coder là trang web cá nhân, được thành lập với mục đích lưu trữ, chia sẽ kiến thức đã học và làm việc của tôi. Các bài viết trên trang này chủ yếu về ngôn ngữ Java và các công nghệ có liên quan đến Java như: Spring, JSF, Web Services, Unit Test, Hibernate, SQL, ...
Hi vọng góp được chút ít công sức cho sự phát triển cộng đồng Coder Việt.

Donate tác giả

Tìm kiếm các bài viết của GP Coder với Google Search

Liên hệ

Các bạn có thể liên hệ với tôi thông qua:
  • Trang liên hệ
  • Linkedin: gpcoder
  • Email: contact@gpcoder.com
  • Skype: ptgiang56it

Follow me

Copyright 2025 © GP Coder · All Rights Reserved · Giới thiệu · Chính sách · Điều khoản · Liên hệ ·

Share

Blogger
Delicious
Digg
Email
Facebook
Facebook messenger
Flipboard
Google
Hacker News
Line
LinkedIn
Mastodon
Mix
Odnoklassniki
PDF
Pinterest
Pocket
Print
Reddit
Renren
Short link
SMS
Skype
Telegram
Tumblr
Twitter
VKontakte
wechat
Weibo
WhatsApp
X
Xing
Yahoo! Mail

Copy short link

Copy link