Java I/O---Properties類

来源:https://www.cnblogs.com/zhuweiheng/archive/2017/12/30/8150149.html
-Advertisement-
Play Games

1.Properties類簡介 Properties類(Java.util.Properties),主要用於讀取Java的配置文件,各種語言都有自己所支持的配置文件,配置文件中很多變數是經常改變的,這樣做也是為了方便用戶,讓用戶能夠脫離程式本身去修改相關的變數設置。像Python支持的配置文件是.i ...


1.Properties類簡介

       Properties類(Java.util.Properties),主要用於讀取Java的配置文件,各種語言都有自己所支持的配置文件,配置文件中很多變數是經常改變的,這樣做也是為了方便用戶,讓用戶能夠脫離程式本身去修改相關的變數設置。像Python支持的配置文件是.ini文件,同樣,它也有自己讀取配置文件的類ConfigParse,方便程式員或用戶通過該類的方法來修改.ini配置文件。在Java中,其配置文件常為.properties文件,格式為文本文件,文件的內容的格式是“鍵=值”的格式,文本註釋信息可以用"#"來註釋。

#person information
#Sat Dec 30 15:00:22 CST 2017
age=18
name=zhangsan

 

 

      

Properties的父類為 HashTable類。

Propertise類常用方法:

(1)setProperty ( String key, String value) : 調用 Hashtable 的方法 put 。他通過調用基類的put方法來設置 鍵 - 值對。

(2)getProperty ( String key):用指定的鍵在此屬性列表中搜索屬性。也就是通過參數 key ,得到 key 所對應的 value。

(3)load ( InputStream inStream):從輸入流中讀取屬性列表(鍵和元素對)。

(4)store ( OutputStream out, String comments):將Properties 表中的屬性列表(鍵和元素對)寫入輸出流。comments為註釋參數。該方法將鍵 - 值對寫入到指定的文件中去。

(5)list(System.out):列印配置文件信息到控制台。

(6)clear (),清除所有裝載的 鍵 - 值對。該方法在基類中提供。

 

 2.properties方法演示

  1 public class PropertiesDemo {
  2 
  3 	/**
  4 	 * Properties 常用到配置文件參數
  5 	 * @param args
  6 	 */
  7 	public static void main(String[] args) {
  8 		// TODO Auto-generated method stub
  9 
 10 //		methodDemo();	
 11 //		methodDemo2();
 12 		methodDemo3();
 13 	}
 14 
 15 	private static void methodDemo3() {
 16 		// TODO Auto-generated method stub
 17 		Properties prop = new Properties();
 18 
 19 		//創建輸ru流對象
 20 		FileInputStream inStream = null;
 21 		try {
 22 			inStream = new FileInputStream("H:\\workspace\\Testfile\\info.properties");
 23 			prop.load(inStream);//載入數據
 24 
 25 			prop.setProperty("name", "zhangsan");//修改參數
 26 
 27 			prop.list(System.out);//列印
 28 
 29 
 30 		} catch (IOException e) {
 31 			// TODO Auto-generated catch block
 32 			e.printStackTrace();
 33 		} finally{
 34 			if(inStream != null){
 35 				try {
 36 					inStream.close();
 37 				} catch (IOException e) {
 38 					// TODO Auto-generated catch block
 39 					throw new RuntimeException();
 40 				}
 41 			}
 42 		}
 43 
 44 
 45 	}
 46 
 47 	/**
 48 	 * 演示properties持久化
 49 	 */
 50 	private static void methodDemo2() {
 51 		// TODO Auto-generated method stub
 52 		Properties prop = new Properties();
 53 
 54 		prop.setProperty("name", "zhangsan");
 55 		prop.setProperty("age", "18");
 56 
 57 		//創建輸出流對象
 58 		FileOutputStream fos = null;
 59 		try {
 60 			fos = new FileOutputStream("H:\\workspace\\Testfile\\info.properties");
 61 			prop.store(fos, "person information");//第二個參數為註釋信息
 62 
 63 
 64 
 65 		} catch (IOException e) {
 66 			// TODO Auto-generated catch block
 67 			e.printStackTrace();
 68 		} finally{
 69 			if(fos != null){
 70 				try {
 71 					fos.close();
 72 				} catch (IOException e) {
 73 					// TODO Auto-generated catch block
 74 					throw new RuntimeException();
 75 				}
 76 			}
 77 		}
 78 
 79 	}
 80 
 81 	/**
 82 	 * 演示setProperty()和prop.list(System.out)
 83 	 */
 84 	private static void methodDemo() {
 85 		// TODO Auto-generated method stub
 86 		Properties prop = new Properties();
 87 
 88 		prop.setProperty("name", "zhangsan");
 89 		prop.setProperty("age", "18");
 90 
 91 		prop.list(System.out);//直接使用list方法列印輸出
 92 
 93 	/*
 94 		Set<String> set = prop.stringPropertyNames();
 95 
 96 		for(String key : set){
 97 			String value = prop.getProperty(key);
 98 			System.out.println(key+":"+value);
 99 		}*/
100 
101 	}
102 
103 }

 

2017-12-30 內容來自創智播客課程

Java中Properties類的操作 - bakari - 博客園


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • WEB前端研發工程師,在國內算是一個朝陽職業,這個領域沒有學校的正規教育,大多數人都是靠自己自學成才。本文主要介紹自己從事web開發以來(從大二至今)看過的書籍和自己的成長過程,目的是給想瞭解JavaScript或者是剛接觸JavaScript的朋友,介紹如何通過循序漸進的看書來學習javascri ...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv ...
  • 別人的警告:大多數初學者學習網頁製作所用的集成開發環境(IDE)大多是Dreamweaver(我現在用的就是DW cc),這種所見即所得的“弔炸天”IDE為我們帶來了極大的方便。But:雖然它入門快,見效快,很容易讓初學者愛上,,聰明的IDE也成全了我們的惰性。 正確的方向勝過無謂的努力:也不知道它 ...
  • 作為 CSS 的一種擴展,Less 不僅完全相容 CSS 語法,而且連新增的特性也是使用 CSS 語法。這樣的設計使得學習 Less 很輕鬆,而且你可以在任何時候回退到 CSS(摘自官網) 1.變數 Less通過@來定義變數;Less中的變數為完全的常量,所以只能被定義一次 @base: #f938 ...
  • 背景 開發移動端H5頁面 面對不同解析度的手機 面對不同屏幕尺寸的手機 視覺稿 在前端開發之前,視覺MM會給我們一個psd文件,稱之為視覺稿。 對於移動端開發而言,為了做到頁面高清的效果,視覺稿的規範往往會遵循以下兩點: 1、首先,選取一款手機的屏幕寬高作為基準(以前是iphone4的320×480 ...
  • 慚愧,和我的學弟比起來,我所開始接觸前端開發,ArcGIS API for JavaScript的時間和深度遠遠不及於他。 一年之尾,亦是一年之始,我也將正式開始我的博客生涯。本人在校學習並且做項目,在其過程中自然會遇到不少困惑與問題,遂將這些問題的解決方法與一些想法整理髮布在這個平臺上,也算是自己 ...
  • (個人知識有限,難免有誤,請見諒) 標準文檔流,顧名思義,是要按照一定規矩排列的,預設的就是元素會從左至右,從上至下排列,塊級會獨占一行,行內元素會和小伙伴們共用一行。 本來在標準文檔流下,各個元素相安無事,可突然有一天某個元素心想啊,我那麼優秀,不該出現在這裡啊,於是它成精了,它發現了一道大門走向 ...
  • 1. 先把一個div設置成A4紙的大小,寬21cm,高29.7cm ```html ``` , ``` #abody { width: 21cm; height: 29.7cm; margin: 0 auto; overf... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...