<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DigiTechLog Dot Com &#187; SAX</title>
	<atom:link href="http://digitechlog.com/tag/sax/feed" rel="self" type="application/rss+xml" />
	<link>http://digitechlog.com</link>
	<description>Adobe AIR、Flex、Flash、Java</description>
	<lastBuildDate>Tue, 08 Nov 2011 12:46:29 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaでXMLを操作の４種類方法とサンプルソース</title>
		<link>http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html</link>
		<comments>http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html#comments</comments>
		<pubDate>Tue, 24 Feb 2009 16:43:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[DOM4J]]></category>
		<category><![CDATA[JDOM]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html</guid>
		<description><![CDATA[本文はJavaでXMLファイルを操作するDOM、SAX、JDOMとDOM４Jという４種類の説明とサンプルソースです。
 
・DOM
DOMはDocument Object Modelの略です。XMLにアクセスするためのAPI(Application Programming Interface)です。W3Cによって仕様が公開されています。DOMは、XML文書をツリー構造として扱います。
 これを「DOMツリー」といいます。XML文書全体を解析してDOMツリーとしてメモリ上に保存するのでデータの多いXML文書を解析する場合は多くのメモリを消費します。
以下はサンプル用のhelloworld.xml
 
&#60;?xml version=”1.0″ encoding=”Shift_JIS” ?&#62;
&#160;
&#60;message&#62;Hello World&#60;/message&#62;
解析用のJavaソースです。
import java.io.*;
import&#160;javax.xml.parsers.*;
import&#160;org.w3c.dom.Document;
import&#160;org.w3c.dom.Element;
&#160;
public&#160;class HelloWorldDOM {
&#160; public&#160;static void main (String[] args) {
&#160; &#160; try&#160;{
&#160; &#160; &#160; // ドキュメントビルダーファクトリを生成
&#160; &#160; &#160; DocumentBuilderFactory&#160;dbfactory = DocumentBuilderFactory.newInstance();
&#160; &#160; &#160; // ドキュメントビルダーを生成
&#160; &#160; &#160; DocumentBuilder&#160;builder = dbfactory.newDocumentBuilder();
&#160; &#160; &#160; // パースを実行してDocumentオブジェクトを取得
&#160; &#160; &#160; Document&#160;doc = builder.parse(new File(&#34;helloworld.xml&#34;));
&#160; &#160; &#160; // ルート要素を取得（タグ名：message）
&#160; [...]]]></description>
			<content:encoded><![CDATA[<p>本文はJavaでXMLファイルを操作するDOM、SAX、JDOMとDOM４Jという４種類の説明とサンプルソースです。</p>
<p><span id="more-331"></span> </p>
<p><strong>・DOM</strong></p>
<p>DOMはDocument Object Modelの略です。XMLにアクセスするためのAPI(Application Programming Interface)です。W3Cによって仕様が公開されています。DOMは、XML文書をツリー構造として扱います。</p>
<p> これを「DOMツリー」といいます。XML文書全体を解析してDOMツリーとしてメモリ上に保存するのでデータの多いXML文書を解析する場合は多くのメモリを消費します。</p>
<p>以下はサンプル用のhelloworld.xml</p>
<p> <br/></p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Olive;">&lt;?</span><span style="color: Green;">xml</span><span style="color: Gray;"> </span><span style="color: #00008b;">version</span><span style="color: Gray;">=”</span><span style="color: #00008b;">1</span><span style="color: Gray;">.</span><span style="color: #00008b;">0</span><span style="color: Gray;">″ </span><span style="color: #00008b;">encoding</span><span style="color: Gray;">=”</span><span style="color: #00008b;">Shift_JIS</span><span style="color: Gray;">” </span><span style="color: Olive;">?&gt;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">&lt;</span><span style="color: Green;">message</span><span style="color: Olive;">&gt;</span><span style="color: Gray;">Hello World</span><span style="color: Olive;">&lt;/</span><span style="color: Green;">message</span><span style="color: Olive;">&gt;</span></li></ol></div>
<p>解析用のJavaソースです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">javax</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">parsers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">w3c</span><span style="color: Gray;">.</span><span style="color: Blue;">dom</span><span style="color: Gray;">.</span><span style="color: Blue;">Document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">w3c</span><span style="color: Gray;">.</span><span style="color: Blue;">dom</span><span style="color: Gray;">.</span><span style="color: Blue;">Element</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">HelloWorldDOM</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ドキュメントビルダーファクトリを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DocumentBuilderFactory</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">dbfactory</span><span style="color: Gray;"> = </span><span style="color: Blue;">DocumentBuilderFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newInstance</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ドキュメントビルダーを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">DocumentBuilder</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">builder</span><span style="color: Gray;"> = </span><span style="color: Blue;">dbfactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newDocumentBuilder</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// パースを実行してDocumentオブジェクトを取得</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Document</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doc</span><span style="color: Gray;"> = </span><span style="color: Blue;">builder</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">helloworld.xml</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// ルート要素を取得（タグ名：message）</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">root</span><span style="color: Gray;"> = </span><span style="color: Blue;">doc</span><span style="color: Gray;">.</span><span style="color: Blue;">getDocumentElement</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// 最初の子ノード（テキストノード）の値を表示</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">print</span><span style="color: Olive;">(</span><span style="color: Blue;">root</span><span style="color: Gray;">.</span><span style="color: Blue;">getFirstChild</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">getNodeValue</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">Exception</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">printStackTrace</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>・<strong>SAX</strong></p>
<p>SAXはSimple API for XMLの略です。DOM(Document Object Model)と並んでXMLを解析するために使用する標準APIです。SAXはXML文書を先頭から読んでいきそこで発生したイベントをアプリケーションでとらえて処理するAPIです。DOMに比べて、メモリ消費量が少ない、解析速度が速いなどのメリットがありますが、ノードの追加、削除など、XML文書を更新する機能はありません。</p>
<p>SAXで上記の同じのhelloworld.xmlを解析Javaソースです。</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">javax</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">parsers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">sax</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">.</span><span style="color: Blue;">sax</span><span style="color: Gray;">.</span><span style="color: Blue;">helpers</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.*;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">HelloWorldSax</span><span style="color: Gray;"> </span><span style="color: Green;">extends</span><span style="color: Gray;"> </span><span style="color: Blue;">DefaultHandler</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">argv</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// SAXパーサーファクトリを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SAXParserFactory</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">spfactory</span><span style="color: Gray;"> = </span><span style="color: Blue;">SAXParserFactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newInstance</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// SAXパーサーを生成</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">SAXParser</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">parser</span><span style="color: Gray;"> = </span><span style="color: Blue;">spfactory</span><span style="color: Gray;">.</span><span style="color: Blue;">newSAXParser</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: #ffa500;">// XMLファイルを指定されたデフォルトハンドラーで処理します</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">parser</span><span style="color: Gray;">.</span><span style="color: Blue;">parse</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">helloworld.xml</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">, </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">HelloWorldSax</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">Exception</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; </span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">printStackTrace</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * ドキュメント開始時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">startDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ドキュメント開始</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * 要素の開始タグ読み込み時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">startElement</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">uri</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">localName</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">qName</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">Attributes</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">attributes</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">要素開始:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">qName</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * テキストデータ読み込み時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">characters</span><span style="color: Olive;">(</span><span class="hl-types">char</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">ch</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">offset</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span class="hl-types">int</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">length</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">テキストデータ：</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">String</span><span style="color: Olive;">(</span><span style="color: Blue;">ch</span><span style="color: Gray;">, </span><span style="color: Blue;">offset</span><span style="color: Gray;">, </span><span style="color: Blue;">length</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * 要素の終了タグ読み込み時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">endElement</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Gray;"> </span><span style="color: Blue;">uri</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">localName</span><span style="color: Gray;">,</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">qName</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">要素終了:</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> + </span><span style="color: Blue;">qName</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; * ドキュメント終了時</span></li>
<li><span style="color: #ffa500;">&nbsp;&nbsp; */</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">endDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">ドキュメント終了</span><span style="color: #8b0000;">&quot;</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>・<strong>JDOM</strong></p>
<p>JDOM（Java Document Object Model）はJavaでXMLを容易に扱うため、DOMより使いやすいAPIを提供することを目指して設計された軽量XMLライブラリです。</p>
<p>JDOMは以下のような特徴があります：<br />１、シンプルなAPIは、Javaプログラマにとって使いやすい<br />２、DOMと違って、Javaに特化した機能を提供しているため、生産性がDOMより優れています<br />３、SAXやDOMをサポートしています<br />４、軽量であるため、高速に動作します </p>
<p>以下はJDOMでhelloworld.xmlを読んでるJavaソース</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">File</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">Element</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">Document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">JDOMException</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">jdom</span><span style="color: Gray;">.</span><span style="color: Blue;">input</span><span style="color: Gray;">.</span><span style="color: Blue;">SAXBuilder</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Main</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　</span><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span class="hl-types">static</span><span style="color: Gray;"> </span><span class="hl-types">void</span><span style="color: Gray;"> </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;"> </span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　　</span><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　　　</span><span style="color: Blue;">Document</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">doc</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">SAXBuilder</span><span style="color: Olive;">()</span><span style="color: Gray;">.</span><span style="color: Blue;">build</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">File</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">helloworld</span><span style="color: Gray;">.</span><span style="color: Blue;">xml</span><span style="color: Gray;">”</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">　　　</span><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">root</span><span style="color: Gray;"> = </span><span style="color: Blue;">doc</span><span style="color: Gray;">.</span><span style="color: Blue;">getRootElement</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">　　</span><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">JDOMException</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">　　　</span><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">　　</span><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">　</span><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>・<strong>DOM4J </strong><a href="http://dom4j.sourceforge.net"><strong></strong></a></p>
<p>dom4j は JDOM の派生と言われています。Javaプラットフォーム上でXML, XPath, XSLTを扱える、単純で柔軟性に富んだオープンソース・ライブラリです。Javaコレクション・フレームワークを使え、DOM, SAX, JAXPを完全にサポートしています。 </p>
<p>以下はDOM4Jでhelloworld.xmlを生成するJavaソース</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">import</span><span style="color: Gray;"> </span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">dom4j</span><span style="color: Gray;">.</span><span style="color: Blue;">Document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">dom4j</span><span style="color: Gray;">.</span><span style="color: Blue;">DocumentHelper</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">org</span><span style="color: Gray;">.</span><span style="color: Blue;">dom4j</span><span style="color: Gray;">.</span><span style="color: Blue;">Element</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">class</span><span style="color: Gray;"> </span><span style="color: Blue;">Users</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">Document</span><span style="color: Gray;"> </span><span style="color: Blue;">createDocument</span><span style="color: Olive;">()</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">Document</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">document</span><span style="color: Gray;"> = </span><span style="color: Blue;">DocumentHelper</span><span style="color: Gray;">.</span><span style="color: Blue;">createDocument</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">root</span><span style="color: Gray;"> = </span><span style="color: Blue;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">addElement</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">messages</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Blue;">Element</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">me</span><span style="color: Gray;"> = </span><span style="color: Blue;">root</span><span style="color: Gray;">.</span><span style="color: Blue;">addElement</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">message</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addAttribute</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">attr</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;">, </span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">A message</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span></li>
<li><span style="color: Gray;">.</span><span style="color: Blue;">addText</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: #8b0000;">&quot;</span><span style="color: Red;">message</span><span style="color: #8b0000;">&quot;</span><span style="color: Gray;"> </span><span style="color: Olive;">)</span><span style="color: Gray;">; </span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">document</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p><strong>リソース</strong><br />
・<a title="http://www.ibm.com/developerworks/library/x-dom4j.html?S_TACT=105AGX52&amp;S_CMP=cn-a-x" href="http://www.ibm.com/developerworks/library/x-dom4j.html?S_TACT=105AGX52&amp;S_CMP=cn-a-x">http://www.ibm.com/developerworks/library/x-dom4j.html?S_TACT=105AGX52&amp;S_CMP=cn-a-x</a> DOM4Jについてトライアル<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/01/08/the-class-source-of-read-and-write-ini-file-in-java.html" title="Javaでiniファイルを読み書きクラスソース">Javaでiniファイルを読み書きクラスソース</a></li>
<li><a href="http://digitechlog.com/2009/01/15/how-to-parse-xml-in-jquery-with-sample-source-code.html" title="jQueryを使ってXMLを解析操作する（サンプルソースコード含める）">jQueryを使ってXMLを解析操作する（サンプルソースコード含める）</a></li>
<li><a href="http://digitechlog.com/2009/05/12/how-to-use-json-to-exchange-data-in-flex-flash.html" title="JSON(json.as)でFlex／Flashアプリケーションにデータを交換する">JSON(json.as)でFlex／Flashアプリケーションにデータを交換する</a></li>
<li><a href="http://digitechlog.com/2009/04/10/as3cannonball-dom-html-css-browser-library-for-actionscript-3.html" title="as3cannonball: DOM+HTML+CSS+BrowserのActionScript 3ライブラリ">as3cannonball: DOM+HTML+CSS+BrowserのActionScript 3ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/22/s2x-is-a-python-script-that-allows-the-sol-file-format-represented-as-xml.html" title="s2x: Flashのcookieファイル(*.sol)とXMLフォーマットの互换用Pythonスクリプトソース">s2x: Flashのcookieファイル(*.sol)とXMLフォーマットの互换用Pythonスクリプトソース</a></li>
<li><a href="http://digitechlog.com/2009/02/11/javaswf2-provides-parsing-and-generating-facilities-for-flash-4-and-flash-5-content.html" title="JavaSWF2: JavaによるFlash解析、生成ライブラリ">JavaSWF2: JavaによるFlash解析、生成ライブラリ</a></li>
<li><a href="http://digitechlog.com/2009/02/01/swfmill-is-an-xml2swf-and-swf2xml-processor-with-import-functionalities.html" title="swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール">swfmill: swfファイルとXMLファイルを相互変換するオープンソースツール</a></li>
<li><a href="http://digitechlog.com/2008/12/01/how-to-read-and-write-micorsoft-excel-csv-file-with-bufferedreader-filereader-class-in-java.html" title="JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）">JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javaでiniファイルを読み書きクラスソース</title>
		<link>http://digitechlog.com/2009/01/08/the-class-source-of-read-and-write-ini-file-in-java.html</link>
		<comments>http://digitechlog.com/2009/01/08/the-class-source-of-read-and-write-ini-file-in-java.html#comments</comments>
		<pubDate>Wed, 07 Jan 2009 15:04:25 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[INI]]></category>
		<category><![CDATA[SAX]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[クラスソース]]></category>

		<guid isPermaLink="false">http://digitechlog.com/2009/01/08/the-class-source-of-read-and-write-ini-file-in-java.html</guid>
		<description><![CDATA[この前の「JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）」には、JavaでCSVファイルの読み書きすることを紹介しました。今回は、Javaでiniファイルを読み書きクラスソースです。JavaでXMLファイルの操作、DOM (Document Object Model) とSAX (Simple API for XML)のようなライブラリがありますので、一般的なJavaで開発されているシステムの設定ファイルなどは、XMLがよく使われていますが、iniファイルをいじって開発するプログラム／システムもあるし、DOM、SAXのような別のライブラリをインポートしたくない場合もありますね。
javaのjava.util.Propertiesなら、下記のようなソースで簡単なiniファイルを読めますが、「セッション」の概念がないことは、残念ですよね。
※XMLとは、文書やデータの意味や構造を記述するためのマークアップ言語の一つ。マークアップ言語とは、「タグ」と呼ばれる特定の文字列で地の文に構造を埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できることから、マークアップ言語を作成するためのメタ言語とも言われる。
 
以下はサンプルiniファイルの中身（sample.ini）：
[セッション1]
key1=111111
key2=222222
下記は読みだけJavaソース：  
try {
java.util.Properties&#160;prop = new java.util.Properties();
prop.load(new&#160;java.io.FileInputStream(”sample.ini”));
String&#160;key1 = prop.getProperty(”key1″);
String&#160;key2 = prop.getProperty(”key2″);
System.out.println(”key1=” + key1);
System.out.println(”key2=” + key2);
}&#160;catch (java.io.IOException e) {
e.printStackTrace();
}
簡単なんですが、[セッション2]があれば面倒ですね。 下記のクラスでiniの読み込み操作は出来ます。 
package&#160;&#160; mytools;
&#160;
import&#160; java.io.BufferedReader;
import&#160; java.io.BufferedWriter;
import&#160; java.io.FileReader;
import&#160; java.io.FileWriter;
import&#160; java.io.IOException;
import&#160; java.util.regex.Matcher;
import&#160; java.util.regex.Pattern;
&#160;
/**
* iniファイルを操作するクラス
*  @author  DigitechLog.com
*  @version  2008-08-18
*/
public&#160;&#160; final&#160;&#160; class&#160; ConfigurationFile&#160; {
/**
* iniファイルからエントリ設定値を取得する
*  @param  file [...]]]></description>
			<content:encoded><![CDATA[<p>この前の「<a href="http://digitechlog.com/2008/12/01/how-to-read-and-write-micorsoft-excel-csv-file-with-bufferedreader-filereader-class-in-java.html">JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）</a>」には、JavaでCSVファイルの読み書きすることを紹介しました。今回は、Javaでiniファイルを読み書きクラスソースです。JavaでXMLファイルの操作、DOM (Document Object Model) とSAX (Simple API for XML)のようなライブラリがありますので、一般的なJavaで開発されているシステムの設定ファイルなどは、XMLがよく使われていますが、iniファイルをいじって開発するプログラム／システムもあるし、DOM、SAXのような別のライブラリをインポートしたくない場合もありますね。</p>
<p>javaのjava.util.Propertiesなら、下記のようなソースで簡単なiniファイルを読めますが、「セッション」の概念がないことは、残念ですよね。</p>
<p>※XMLとは、文書やデータの意味や構造を記述するためのマークアップ言語の一つ。マークアップ言語とは、「タグ」と呼ばれる特定の文字列で地の文に構造を埋め込んでいく言語のことで、XMLはユーザが独自のタグを指定できることから、マークアップ言語を作成するためのメタ言語とも言われる。</p>
<p><span id="more-224"></span> </p>
<p>以下はサンプルiniファイルの中身（sample.ini）：</p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline">[セッション1]</li>
<li>key1=111111</li>
<li>key2=222222</li></ol></div>
<p>下記は読みだけJavaソース：  </p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">try</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">Properties</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">prop</span><span style="color: Gray;"> = </span><span style="color: Green;">new</span><span style="color: Gray;"> </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">Properties</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">prop</span><span style="color: Gray;">.</span><span style="color: Blue;">load</span><span style="color: Olive;">(</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">FileInputStream</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">sample</span><span style="color: Gray;">.</span><span style="color: Blue;">ini</span><span style="color: Gray;">”</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">key1</span><span style="color: Gray;"> = </span><span style="color: Blue;">prop</span><span style="color: Gray;">.</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">key1</span><span style="color: Gray;">″</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">key2</span><span style="color: Gray;"> = </span><span style="color: Blue;">prop</span><span style="color: Gray;">.</span><span style="color: Blue;">getProperty</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">key2</span><span style="color: Gray;">″</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">key1</span><span style="color: Gray;">=” + </span><span style="color: Blue;">key1</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Gray;">”</span><span style="color: Blue;">key2</span><span style="color: Gray;">=” + </span><span style="color: Blue;">key2</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">catch</span><span style="color: Gray;"> </span><span style="color: Olive;">(</span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">IOException</span><span style="color: Gray;"> </span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">printStackTrace</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li></ol></div>
<p>簡単なんですが、[セッション2]があれば面倒ですね。 下記のクラスでiniの読み込み操作は出来ます。 </p>
<div class="hl-surround"><ol class="hl-main ln-show" title="Double click to hide line number." ondblclick = "linenumber(this)"><li class="hl-firstline"><span style="color: Green;">package</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Blue;">mytools</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">BufferedReader</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">BufferedWriter</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">FileReader</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">FileWriter</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">io</span><span style="color: Gray;">.</span><span style="color: Blue;">IOException</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">regex</span><span style="color: Gray;">.</span><span style="color: Blue;">Matcher</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">import</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">java</span><span style="color: Gray;">.</span><span style="color: Blue;">util</span><span style="color: Gray;">.</span><span style="color: Blue;">regex</span><span style="color: Gray;">.</span><span style="color: Blue;">Pattern</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">* iniファイルを操作するクラス</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @author </span><span style="color: #ffa500;"> DigitechLog.com</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @version </span><span style="color: #ffa500;"> 2008-08-18</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;&nbsp; </span><span class="hl-types">final</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">class</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">ConfigurationFile</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">* iniファイルからエントリ設定値を取得する</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> file iniファイルのパス</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> section セクション名称</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> variable エントリ名称</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> defaultValue エントリ名称が存在していない場合デフォルト値</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @return </span><span style="color: #ffa500;"> エントリの設定値</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @throws </span><span style="color: #ffa500;"> IOException IO例外情報</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;&nbsp; </span><span class="hl-types">static</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getProfileString</span><span style="color: Olive;">(</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">file</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">section</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">variable</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">defaultValue</span><span style="color: Olive;">)</span></li>
<li><span style="color: Green;">throws</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">IOException</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">strLine</span><span style="color: Gray;">, </span><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; “” ;</span></li>
<li><span style="color: Blue;">BufferedReader</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">BufferedReader</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">FileReader</span><span style="color: Olive;">(</span><span style="color: Blue;">file</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span class="hl-types">boolean</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">false</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">while</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">((</span><span style="color: Blue;">strLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">.</span><span style="color: Blue;">readLine</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; !=&nbsp;&nbsp; </span><span style="color: Green;">null</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">strLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">strLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Olive;">[</span><span style="color: Gray;">;</span><span style="color: Olive;">]</span><span style="color: Gray;"> ” </span><span style="color: Olive;">)[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Pattern</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">p</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Matcher</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">m</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">p</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">Pattern</span><span style="color: Gray;">.</span><span style="color: Blue;">compile</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Blue;">file</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//[//s*.*//s*//] ” );</span></li>
<li><span style="color: Blue;">m</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">p</span><span style="color: Gray;">.</span><span style="color: Blue;">matcher</span><span style="color: Olive;">((</span><span style="color: Blue;">strLine</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">matches</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">p</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">Pattern</span><span style="color: Gray;">.</span><span style="color: Blue;">compile</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Blue;">file</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//[//s* &quot;&nbsp;&nbsp; +&nbsp; section&nbsp; +&nbsp;&nbsp; &quot; file://s*//] ” );</span></li>
<li><span style="color: Blue;">m</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">p</span><span style="color: Gray;">.</span><span style="color: Blue;">matcher</span><span style="color: Olive;">(</span><span style="color: Blue;">strLine</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">matches</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">true</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">false</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">}</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; ==&nbsp;&nbsp; </span><span style="color: Green;">true</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">strLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">strArray</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” = ” </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">strArray</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">&nbsp; ==&nbsp;&nbsp; </span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strArray</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">value</span><span style="color: Gray;">.</span><span style="color: Blue;">equalsIgnoreCase</span><span style="color: Olive;">(</span><span style="color: Blue;">variable</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; “” ;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">value</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">strArray</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">&nbsp; ==&nbsp;&nbsp; </span><span style="color: Maroon;">2</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strArray</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">value</span><span style="color: Gray;">.</span><span style="color: Blue;">equalsIgnoreCase</span><span style="color: Olive;">(</span><span style="color: Blue;">variable</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strArray</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">value</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">strArray</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">&nbsp; &gt;&nbsp;&nbsp; </span><span style="color: Maroon;">2</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strArray</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">value</span><span style="color: Gray;">.</span><span style="color: Blue;">equalsIgnoreCase</span><span style="color: Olive;">(</span><span style="color: Blue;">variable</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">substring</span><span style="color: Olive;">(</span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">indexOf</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” = ” </span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; +&nbsp;&nbsp; </span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">value</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">}</span></li>
<li><span style="color: Gray;">}&nbsp;&nbsp; </span><span style="color: Green;">finally</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">defaultValue</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">}</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">* iniファイルエントリ設定値を変更する</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> file iniファイルのパス</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> section セクション名称</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @param </span><span style="color: #ffa500;"> variable エントリ名称</span></li>
<li><span style="color: #ffa500;">* </span><span style="color: Blue;"> @throws </span><span style="color: #ffa500;"> IOException IO例外情報</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;&nbsp; </span><span class="hl-types">static</span><span style="color: Gray;">&nbsp;&nbsp; </span><span class="hl-types">boolean</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">setProfileString</span><span style="color: Olive;">(</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">file</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">section</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">variable</span><span style="color: Gray;">,</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">value</span><span style="color: Olive;">)</span></li>
<li><span style="color: Green;">throws</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">IOException</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fileContent</span><span style="color: Gray;">, </span><span style="color: Blue;">allLine</span><span style="color: Gray;">,</span><span style="color: Blue;">strLine</span><span style="color: Gray;">, </span><span style="color: Blue;">newLine</span><span style="color: Gray;">, </span><span style="color: Blue;">remarkStr</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">String</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">getValue</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">BufferedReader</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">BufferedReader</span><span style="color: Olive;">(</span><span style="color: Gray;"> </span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">FileReader</span><span style="color: Olive;">(</span><span style="color: Blue;">file</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span class="hl-types">boolean</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">false</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Blue;">fileContent</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; “” ;</span></li>
<li><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">while</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">((</span><span style="color: Blue;">allLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">.</span><span style="color: Blue;">readLine</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; !=&nbsp;&nbsp; </span><span style="color: Green;">null</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">allLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">allLine</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">allLine</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Olive;">[</span><span style="color: Gray;">;</span><span style="color: Olive;">]</span><span style="color: Gray;"> ” </span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">length</span><span style="color: Gray;">&nbsp; &gt;&nbsp;&nbsp; </span><span style="color: Maroon;">1</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span></li>
<li><span style="color: Blue;">remarkStr</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; ” ; “&nbsp;&nbsp; +&nbsp; </span><span style="color: Blue;">allLine</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” ; ” </span><span style="color: Olive;">)[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">1</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">else</span></li>
<li><span style="color: Blue;">remarkStr</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; “” ;</span></li>
<li><span style="color: Blue;">strLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">allLine</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” ; ” </span><span style="color: Olive;">)[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Pattern</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">p</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">Matcher</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">m</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">p</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">Pattern</span><span style="color: Gray;">.</span><span style="color: Blue;">compile</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Blue;">file</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//[//s*.*//s*//] ” );</span></li>
<li><span style="color: Blue;">m</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">p</span><span style="color: Gray;">.</span><span style="color: Blue;">matcher</span><span style="color: Olive;">((</span><span style="color: Blue;">strLine</span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">matches</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">p</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">Pattern</span><span style="color: Gray;">.</span><span style="color: Blue;">compile</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Blue;">file</span><span style="color: Gray;">:</span><span style="color: #ffa500;">//[//s* &quot;&nbsp;&nbsp; +&nbsp; section&nbsp; +&nbsp;&nbsp; &quot; file://s*//] ” );</span></li>
<li><span style="color: Blue;">m</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">p</span><span style="color: Gray;">.</span><span style="color: Blue;">matcher</span><span style="color: Olive;">(</span><span style="color: Blue;">strLine</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">m</span><span style="color: Gray;">.</span><span style="color: Blue;">matches</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">true</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">else</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; =&nbsp;&nbsp; </span><span style="color: Green;">false</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">}</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">isInSection</span><span style="color: Gray;">&nbsp; ==&nbsp;&nbsp; </span><span style="color: Green;">true</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">strLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">strArray</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strLine</span><span style="color: Gray;">.</span><span style="color: Blue;">split</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” = ” </span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">getValue</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">strArray</span><span style="color: Olive;">[</span><span style="color: Gray;">&nbsp;</span><span style="color: Maroon;">0</span><span style="color: Gray;"> </span><span style="color: Olive;">]</span><span style="color: Gray;">.</span><span style="color: Blue;">trim</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Green;">if</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">getValue</span><span style="color: Gray;">.</span><span style="color: Blue;">equalsIgnoreCase</span><span style="color: Olive;">(</span><span style="color: Blue;">variable</span><span style="color: Olive;">))</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">newLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">getValue</span><span style="color: Gray;">&nbsp; +&nbsp;&nbsp; “&nbsp; =&nbsp; “&nbsp;&nbsp; +&nbsp; </span><span style="color: Blue;">value</span><span style="color: Gray;">&nbsp; +&nbsp;&nbsp; “&nbsp;&nbsp; “&nbsp;&nbsp; +&nbsp; </span><span style="color: Blue;">remarkStr</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">fileContent</span><span style="color: Gray;">&nbsp; +=&nbsp; </span><span style="color: Blue;">newLine</span><span style="color: Gray;">&nbsp; +&nbsp;&nbsp; ” \</span><span style="color: Blue;">r</span><span style="color: Gray;">\</span><span style="color: Blue;">n</span><span style="color: Gray;"> ” ;</span></li>
<li><span style="color: Green;">while</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">((</span><span style="color: Blue;">allLine</span><span style="color: Gray;">&nbsp; =&nbsp; </span><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">.</span><span style="color: Blue;">readLine</span><span style="color: Olive;">())</span><span style="color: Gray;">&nbsp; !=&nbsp;&nbsp; </span><span style="color: Green;">null</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">fileContent</span><span style="color: Gray;">&nbsp; +=&nbsp; </span><span style="color: Blue;">allLine</span><span style="color: Gray;">&nbsp; +&nbsp;&nbsp; ” \</span><span style="color: Blue;">r</span><span style="color: Gray;">\</span><span style="color: Blue;">n</span><span style="color: Gray;"> ” ;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">BufferedWriter</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">bufferedWriter</span><span style="color: Gray;">&nbsp; =</span></li>
<li><span style="color: Green;">new</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">BufferedWriter</span><span style="color: Olive;">(</span><span style="color: Gray;">&nbsp;</span><span style="color: Green;">new</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">FileWriter</span><span style="color: Olive;">(</span><span style="color: Blue;">file</span><span style="color: Gray;">,&nbsp; </span><span style="color: Green;">false</span><span style="color: Gray;"> </span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">bufferedWriter</span><span style="color: Gray;">.</span><span style="color: Blue;">write</span><span style="color: Olive;">(</span><span style="color: Blue;">fileContent</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">bufferedWriter</span><span style="color: Gray;">.</span><span style="color: Blue;">flush</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Blue;">bufferedWriter</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">true</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Blue;">fileContent</span><span style="color: Gray;">&nbsp; +=&nbsp; </span><span style="color: Blue;">allLine</span><span style="color: Gray;">&nbsp; +&nbsp;&nbsp; ” \</span><span style="color: Blue;">r</span><span style="color: Gray;">\</span><span style="color: Blue;">n</span><span style="color: Gray;"> ” ;</span></li>
<li><span style="color: Gray;">}</span></li>
<li><span style="color: Gray;">} </span><span style="color: Green;">catch</span><span style="color: Gray;">&nbsp;</span><span style="color: Olive;">(</span><span style="color: Blue;">IOException</span><span style="color: Gray;"> </span><span style="color: Blue;">ex</span><span style="color: Olive;">)</span><span style="color: Gray;"> </span><span style="color: Olive;">{</span></li>
<li><span style="color: Green;">throw</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">ex</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">finally</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">bufferedReader</span><span style="color: Gray;">.</span><span style="color: Blue;">close</span><span style="color: Olive;">()</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Green;">return</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">false</span><span style="color: Gray;"> ;</span></li>
<li><span style="color: Gray;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: #ffa500;">/**</span></li>
<li><span style="color: #ffa500;">* テストコード</span></li>
<li><span style="color: #ffa500;">*/</span></li>
<li><span style="color: Green;">public</span><span style="color: Gray;">&nbsp;&nbsp; </span><span class="hl-types">static</span><span style="color: Gray;">&nbsp;&nbsp; </span><span class="hl-types">void</span><span style="color: Gray;">&nbsp; </span><span style="color: Blue;">main</span><span style="color: Olive;">(</span><span style="color: Blue;">String</span><span style="color: Olive;">[]</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">args</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: #ffa500;">// String value = Config.getProfileString(”sysconfig.ini”, “Option”, “OracleDB”, “default”);</span></li>
<li><span style="color: #ffa500;">// System.out.println(value);</span></li>
<li><span style="color: Green;">try</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">ConfigurationFile</span><span style="color: Gray;">.</span><span style="color: Blue;">setProfileString</span><span style="color: Olive;">(</span><span style="color: Gray;"> ” </span><span style="color: Blue;">d</span><span style="color: Gray;">:/</span><span style="color: Maroon;">1</span><span style="color: Gray;">.</span><span style="color: Blue;">ini</span><span style="color: Gray;"> ” ,&nbsp; ” </span><span style="color: Blue;">Settings</span><span style="color: Gray;"> ” ,&nbsp; ” </span><span style="color: Blue;">SampSize</span><span style="color: Gray;"> ” ,&nbsp; ” </span><span style="color: Maroon;">111</span><span style="color: Gray;"> ” </span><span style="color: Olive;">))</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span><span style="color: Gray;">&nbsp;&nbsp; </span><span style="color: Green;">catch</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">(</span><span style="color: Blue;">IOException</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">e</span><span style="color: Olive;">)</span><span style="color: Gray;">&nbsp; </span><span style="color: Olive;">{</span></li>
<li><span style="color: Blue;">System</span><span style="color: Gray;">.</span><span style="color: Blue;">out</span><span style="color: Gray;">.</span><span style="color: Blue;">println</span><span style="color: Olive;">(</span><span style="color: Blue;">e</span><span style="color: Gray;">.</span><span style="color: Blue;">toString</span><span style="color: Olive;">())</span><span style="color: Gray;">;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">&nbsp;</span></li>
<li><span style="color: Olive;">}</span></li>
<li><span style="color: Gray;">}</span></li></ol></div>
<p>Enjoy!<br />
<h3>Related Posts</h3>
<ul class="related_post">
<li><a href="http://digitechlog.com/2009/02/25/4-ways-to-read-and-write-xml.html" title="JavaでXMLを操作の４種類方法とサンプルソース">JavaでXMLを操作の４種類方法とサンプルソース</a></li>
<li><a href="http://digitechlog.com/2009/01/15/how-to-parse-xml-in-jquery-with-sample-source-code.html" title="jQueryを使ってXMLを解析操作する（サンプルソースコード含める）">jQueryを使ってXMLを解析操作する（サンプルソースコード含める）</a></li>
<li><a href="http://digitechlog.com/2008/12/01/how-to-read-and-write-micorsoft-excel-csv-file-with-bufferedreader-filereader-class-in-java.html" title="JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）">JavaでCSV形式のファイルを読み書きするライブラリソースと使用例（BufferedReaderとFileReaderを利用する）</a></li>
<li><a href="http://digitechlog.com/2009/08/23/granite-data-services-free-lgpl-alternative-to-adobe-livecycle-data-services-for-j2ee-servers.html" title="Granite Data Services: オープンソースプロジェクトによって開発されたデータサービス">Granite Data Services: オープンソースプロジェクトによって開発されたデータサービス</a></li>
<li><a href="http://digitechlog.com/2009/08/16/flosc-flash-opensound-control-java-server-enabling-communication-between-flash-and-osc.html" title="Flosc(Flash OpenSound Control): flashと他のプラットフォーム同士でデータを送受信するJavaサーバー">Flosc(Flash OpenSound Control): flashと他のプラットフォーム同士でデータを送受信するJavaサーバー</a></li>
<li><a href="http://digitechlog.com/2009/08/05/jags-open-source-java-actionscript-game-server.html" title="JAGS Game Server: JavaとAS3でオープンソースのゲームサーバ">JAGS Game Server: JavaとAS3でオープンソースのゲームサーバ</a></li>
<li><a href="http://digitechlog.com/2009/07/10/openamf-free-open-source-alternative-to-adobe-java-flash-remoting.html" title="OpenAMF: オープンソースのJava Flashリモートツール">OpenAMF: オープンソースのJava Flashリモートツール</a></li>
<li><a href="http://digitechlog.com/2009/05/15/a-useful-java-class-for-export-data-into-excel-with-jakarta-poi-hssfworkbook.html" title="Javaでデータをエクセルにエクスポートするクラスと使用例">Javaでデータをエクセルにエクスポートするクラスと使用例</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://digitechlog.com/2009/01/08/the-class-source-of-read-and-write-ini-file-in-java.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

