スッキリわかるJava入門 実践編 第10章 ファイルの操作
第10章 ファイルの操作
代表的なデータフォーマットとその操作を学びます。
CSVファイル形式
CSVファイル形式は複数のデータをカンマで区切って順番に格納するデータフォーマットで広く使われています。
StringTokenizer
import java.util.StringTokenizer; public class Main { public static void main(String[] args) { String s = "ミナト,アサカ,スガワラ"; // カンマをデリミタ指定 // デリミタ: 区切り文字 /*StringTokenizerは、互換性を維持する目的で保持されているレガシー・クラスであり、 * 新規コードでは使用が推奨されていません。この機能の使用を考えているなら、 * Stringのsplitメソッドまたはjava.util.regexパッケージを代わりに使用することを * お薦めします。 */ StringTokenizer st = new StringTokenizer(s, ","); while(st.hasMoreTokens()) { String t = st.nextToken(); System.out.println(t); } } }
プロパティファイル形式
プロパティファイル形式はデータをキーと値のペアで格納する。
主なルールとして、
データは文字情報として保存する
キーと値で記述する などがあります。
プロパティファイルの記述形式と格納先(hptl_clb_csc.properties)
XML形式
XML形式はタグを用いてデータに親子関係の構造を持たせます。
HTMLみたいなものでしょうか。
XMLファイルを読み込む
import java.io.FileInputStream; import java.io.InputStream; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; public class Main { public static void main(String[] args) throws Exception{ InputStream is = new FileInputStream("rpgsave.xml"); Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(is); Element hero = (Element) doc.getDocumentElement(); Element weapon = findChildByTag(hero, "weapon"); Element power = findChildByTag(weapon, "power"); String value = power.getTextContent(); System.out.println(value); } static Element findChildByTag(Element self, String name) throws Exception { NodeList children = ((Node) self).getChildNodes(); for(int i = 0; i < children.getLength(); i++) { if(children.item(i) instanceof Element) { Element e = (Element) children.item(i); if(e.getTagName().equals(name)) { return e; } } } return null; } }
<?xml version='1.0' encoding='utf-8'?> <hero> <name>ミナト</name> <hp>75</hp> <mp>18</mp> <weapon> <name>bbb</name> <power>7</power> </weapon> </hero>
文字コードに注意します。
スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
- 作者: 中山清喬
- 出版社/メーカー: インプレス
- 発売日: 2014/09/22
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (7件) を見る