第一章 屬性文件操作工具類

来源:http://www.cnblogs.com/java-zhao/archive/2016/01/04/5098813.html
-Advertisement-
Play Games

1、代碼實現給出的屬性文件:http.properties(位於類路徑下)1 #每個路由的最大連接數2 httpclient.max.conn.per.route = 20 3 #最大總連接數4 httpclient.max.conn.total = 4005 #連接超時時間(ms)6 http.....


1、代碼實現

給出的屬性文件:http.properties(位於類路徑下)

1 #每個路由的最大連接數
2 httpclient.max.conn.per.route = 20   
3 #最大總連接數
4 httpclient.max.conn.total = 400
5 #連接超時時間(ms)
6 httpclient.max.conn.timeout = 1000
7 #操作超時時間(ms)
8 httpclient.max.socket.timeout = 1000
View Code

註意:eclipse預設的屬性編輯器不可以顯示中文,安裝插件(eclipse--propedit_5.3.3)即可。

屬性文件操作工具:FileUtil

 1 package com.util;
 2 
 3 import java.io.IOException;
 4 import java.io.InputStream;
 5 import java.util.Properties;
 6 
 7 import org.apache.commons.lang.math.NumberUtils;
 8 
 9 /**
10  * 文件操作工具類
11  */
12 public class FileUtil {
13     
14     /**
15      * 載入屬性文件*.properties
16      * @param fileName 不是屬性全路徑名稱,而是相對於類路徑的名稱
17      */
18     public static Properties loadProps(String fileName){
19         Properties props = null;
20         InputStream is = null;
21         
22         try {
23             is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);//獲取類路徑下的fileName文件,並且轉化為輸入流
24             if(is != null){
25                 props = new Properties();
26                 props.load(is);    //載入屬性文件
27             }
28         } catch (Exception e) {
29             e.printStackTrace();
30         }finally{
31             if(is!=null){
32                 try {
33                     is.close();
34                 } catch (IOException e) {
35                     e.printStackTrace();
36                 }
37             }
38         }
39         
40         return props;
41     }
42     
43     /*
44      * 這裡只是列出了從屬性文件中獲取int型數據的方法,獲取其他類型的方法相似
45      */
46     public static int getInt(Properties props, String key, int defaultValue){
47         int value = defaultValue;
48         
49         if(props.containsKey(key)){                                //屬性文件中是否包含給定鍵值
50             value = NumberUtils.toInt(props.getProperty(key), defaultValue);//從屬性文件中取出給定鍵值的value,並且轉換為int型
51         }
52         
53         return value;
54     }
55     
56     /**
57      * 測試
58      */
59     public static void main(String[] args) {
60         Properties props = FileUtil.loadProps("http.properties");
61         System.out.println(FileUtil.getInt(props, "httpclient.max.conn.per.route", 10));//屬性文件中有這個key
62         System.out.println(FileUtil.getInt(props, "httpclient.max.conn.per.route2", 10));//屬性文件中沒有這個key
63     }
64 }
View Code

註意:

  • 從類路徑下讀取文件的方法Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
  • getInt()方法:使用了org.apache.commons.lang.math.NumberUtils類的toInt(String str,int defaultValue)方法,觀察源代碼
     1 public static int toInt(String str, int defaultValue) {
     2         if(str == null) {
     3             return defaultValue;
     4         }
     5         try {
     6             return Integer.parseInt(str);
     7         } catch (NumberFormatException nfe) {
     8             return defaultValue;//toInt("hello", 123)
     9         }
    10     }
    View Code

    執行流程:當傳入的str為null時,直接返回defaultValue;否則,使用Integer.parseInt(str)將str轉換為int型,如果轉換成功(eg.str="123"),直接返迴轉換後的int型(eg.123),如果轉換不成功(eg.str="hello"),直接返回defaultValue。註意:這個工具類是值得借鑒的。


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

-Advertisement-
Play Games
更多相關文章
  • 早上老大扔了個設備來說要做個搖一搖紅包 就上網找了下 強大的度娘都找不到大神們分享出來的源碼 只能自己埋頭去寫寫了微信官方說明如下搖一搖紅包說明功能說明搖一搖周邊紅包介面是為線下商戶提供的發紅包功能。用戶可以在商家門店等線下場所通過搖一搖周邊領取商家發放的紅包,線上上轉發分享無效。開發者可通過介面開...
  • 我們首先來看看官方的文檔怎麼說:如果用戶在微信客戶端中訪問第三方網頁,公眾號可以通過微信網頁授權機制,來獲取用戶基本信息,進而實現業務邏輯。關於網頁授權回調功能變數名稱的說明1、在微信公眾號請求用戶網頁授權之前,開發者需要先到公眾平臺官網中的開發者中心頁配置授權回調功能變數名稱。請註意,這裡填寫的是功能變數名稱(是一個字元...
  • 1.在使用ExtJS在Server端進行網頁開發時,常常會出現關鍵字對應錯誤的問題。例如app\store\xxx\XXX.js中的totalProperty:'XXX',XXX對應的是Action中resultMap.put("aaa",bbb)的aaa。這個是固定的頁面統計條數的方法。root:...
  • 代碼中常有類似的如下的輸入迴圈 char c; while((c=getchar())!=EOF).... 如果輸入 字元+換行時,迴圈的代碼會執行兩次,主要是換行鍵作為字元存到了緩存隊列中,第一次c為輸入的值,第二次c為換行符 ,可以通過fflush(stdin);清除 ...
  • fdisk 分區fdisk /dev/sdb-p查看當前分區-t 改分區號-w將分區表寫進磁碟-n創建分區 -p主分區 -e拓展分區partprobe 讓內核更新分區信息cat /proc/partitions 查看磁碟分區創建文件系統(格式化文件系統)mke2fs -t ext4 /...
  • 1、http協議(這一塊兒有時間的話會做記錄)2、常用的兩種RPC方式基於http協議:HttpClient和JDK自己的Http操作類基於TCP或UDP協議:mina2和netty(這一部分以後有時間做記錄)3、HttpClient工具類的編寫(只列出了兩個最常用的方法get和post)使用場合:...
  • 前言: 新的一年開始了,今年的主要目標就是javascript,最近在看javascript高級程式設計(第三版),單純的看書也是個很枯燥的事,所以就把看完的東西再寫一遍吧,一方面加深印象,一方面理解不正確的也好讓園子裡面的大神們給提提意見。 這本書前兩章主要是javascript簡介以及在...
  • 1.ctrl+shift+p ; 輸入ssvvp ; 回車2.輸入markdown-preview進行安裝3.打開任意.md文件 ; 按ctrl-shift-m 進行預覽
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...