android個人筆記(五)——解析ini檔案
package com.example.effecttest; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Properties; import android.content.Context; public class IniReaderHasSection { protected HashMap<String, Properties> sections = new HashMap<String, Properties>(); private transient String section; private transient Properties properties; /*public IniReaderHasSection(String filename) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(filename)); read(reader); reader.close(); }*/ public IniReaderHasSection(String fileName) throws IOException{ //sections = new HashMap<String, Properties>(); BufferedReader reader = new BufferedReader(new FileReader(fileName)); read(reader); reader.close(); } /** * 讀取asset檔案 * @param context * @param iniPath */ public IniReaderHasSection(Context context,String iniPath){ try{ //sections = new HashMap<String, Properties>(); InputStream inputStream = context.getResources().getAssets().open(iniPath); BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); read(reader); reader.close(); }catch(Exception ex){ ex.printStackTrace(); } } protected void read(BufferedReader reader) throws IOException { String line; while ((line = reader.readLine()) != null) { parseLine(line); } } protected void parseLine(String line) { line = line.trim(); if (line.matches("\\[.*\\]")) { section = line.replaceFirst("\\[(.*)\\]", "$1"); properties = new Properties(); sections.put(section, properties); } else if (line.matches(".*=.*")) { if (properties != null) { int i = line.indexOf('='); String name = line.substring(0, i); String value = line.substring(i + 1); properties.setProperty(name, value); } } } public String getValue(String section, String name) { Properties p = (Properties) sections.get(section); if (p == null) { return null; } String value = p.getProperty(name); return value; } }
ini檔案示例:
相關推薦
android個人筆記(五)——解析ini檔案
package com.example.effecttest; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import j
《自己動手寫java虛擬機器》學習筆記(五)-----解析class檔案(go)
專案地址:https://github.com/gongxianshengjiadexiaohuihui 上一節,我們已經通過路徑找到了指定的class檔案,這一節,我們開始解析class檔案,我們知道class檔
Android入門筆記(五)
五、ViewPager 5.1 ViewPager 的作用 為 UI 新增 ViewPager 後,使用者可以左右滑動螢幕,切換檢視不同列表項的明細頁面。 5.2 ViewPager 的實現 (1)建立佈局檔案,設定根元素為 ViewPager,可命名為:ac
Android學習筆記(五)廣播(Broadcast)
5. 廣播 5.1 廣播 Android中的廣播主要分為兩種型別:標準廣播和有序廣播。 標準廣播: 是一種完全非同步執行的廣播,廣播發出後,所有的廣播接收器都會在同一時間內接受這條廣
Android學習筆記(五)——通過全域性變數傳遞資料
1、全域性物件是Activity之間傳遞資料的一種比較實用的方式,比如在JavaWeb中有四個作用域,這四個作用域從小到大分別是Page、Request、Session和Application,其中Application域在應用程式的任何地方都可以使用和訪問,除非是Web伺
android個人筆記(四)——JNI、C++字串轉換
//java字串轉C字串 char* Jstring2str(JNIEnv* env, jstring jstr) { char* pStr = NULL; jclass jstrObj = env->FindClass("java/lang/String"); js
《自己動手寫java虛擬機器》學習筆記(六)-----解析class檔案(java)
專案地址:https://github.com/gongxianshengjiadexiaohuihui 註釋都寫的很清楚,有一些概念問題,請參考go版本的實現 目錄結構 首先是位元組轉換工具,因為java和go的類庫不同,另外需注意class檔案是大端儲存方式(高位元組放低地址,
Java NIO 學習筆記(五)----路徑、檔案和管道 Path/Files/Pipe
目錄: Java NIO 學習筆記(一)----概述,Channel/Buffer Java NIO 學習筆記(二)----聚集和分散,通道到通道 Java NIO 學習筆記(三)----Selector Java NIO 學習筆記(四)----檔案通道和網路通道 Java NIO 學習筆記(五)----路徑
mybatis學習筆記(五)- MyBatis 對映檔案(引數處理)
注意:本篇筆記內容承接上一篇 引數處理 1. 單個引數&多個引數&命名引數 簡介 單個引數:mybatis不會做特殊處理, #{引數名/任意名}:取出引數值。 多個引數:mybatis會做特殊處理。
安卓開發筆記(五)——資料儲存SharedPreference以及Android中常見的檔案操作方法
中山大學資料科學與計算機學院本科生實驗報告 (2018年秋季學期) 一、實驗題目 個人專案3 資料儲存(一)應用開發 二、實現內容 第九周任務 實驗目的 學習SharedPreference的基本使用。 學習Android中
床頭筆記之Android開發學習(五)
執行第一個程式 好了,前幾篇已經把環境搭好了,專案建好了,然後目錄一些執行機制弄明白了,下面來執行開始體驗開發的樂趣吧。 eclipse連線夜神模擬器進行開發 用安卓自帶的模擬器啟動時間過長,反應慢,簡直不能忍,那為什麼不用別的安卓模擬器,本次使用夜神模擬器,去
阿里巴巴開發手冊解析個人筆記(二)Mysql規約
文章目錄 1.建立資料庫 2. 建立表 2.1 建立名稱 2.2 建立索引 3.建立欄位 3.1 建立名稱 3.2 建立型別 4.sql的執行流程
阿里巴巴開發手冊解析個人筆記(七)流程控制
註釋規範為純記憶,不再說明 1. 【強制】在一個 switch 塊內,每個 case 要麼通過 break/return 等來終止,要麼註釋說明程 序將繼續執行到哪一個 case 為止; 在一個 switch 塊內,都必須包含一個 default 語句並且 放在最後,即使空程式碼。
阿里巴巴開發手冊解析個人筆記(三)集合處理
文章目錄 1. 【強制】 關於 hashCode 和 equals 的處理,遵循如下規則: 1) 只要重寫 equals,就必須重寫 hashCode。 2) 因為 Set 儲存的是不重複的物件,依據 hashCode 和 equals 進行判斷,所以 Set 儲存
阿里巴巴開發手冊解析個人筆記(二)
文章目錄 1.2常量定義 1.3程式碼格式 1.4 OOP規約 1.2常量定義 1. 【強制】不允許任何魔法值(即未經預先定義的常量) 直接出現在程式碼中。 反例 String key = "Id#taobao
阿里巴巴開發手冊解析個人筆記(一)
文章目錄 1.編碼規約篇 1.1命名風格 1.1.1 $與_ 1.1.2 拼音命名的壞處 1.1.3 駝峰命名規格 1.1.3.1駝峰命名
安卓開發學習筆記(五):史上最簡單且華麗地實現Android Stutio當中Webview控制元件https/http協議的方法
一.我們先在XML當中自定義一個webview(Second_layout.xml) 程式碼如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.an
Android學習筆記(五五) 通知Notification(下)
Notification除了用於後臺服務通知,還常用在下面情況:(1)保持服務存在。當系統記憶體不足時,系統會認為某後臺服務佔用記憶體時間太長而中止該服務,以釋放記憶體。對於某些服務,例如播放音樂,如果系統對該服務進行資源釋放,使用者體驗就成了音樂突然沒有聲音。對這類服務,我們希望享有更高的優先級別,不會被系
Android學習筆記(五六):位置Location
建議更新20130522的ADT版本,無論是Linux下還是Windows下,我覺得速度快了很多。而且將Android SDK Tool升級到ver 22版本後,原來的ADT有很多不明原因問題,載入App到模擬器上出現連線不上的情況。 允許應用具備定位功能 Location是手機功能的一大特色,衛星導航除了
Android開發筆記(五十六)攝像頭拍照
相機Camera Camera是直接操作攝像頭硬體的工具類。常用的方法如下: getNumberOfCameras : 獲取本機的攝像頭數目 open : 開啟攝像頭,預設開啟後置攝像頭。如果有多個攝像頭,那麼open(0)表示開啟後置攝像頭,open(1)表示開啟前置攝像