1   /**
2    * Yksinkertainen luokka ini-tiedostojen lukemiseen.
3    * Tämä versio avaa joka kerralla tiedoston uudelleen.
4    * Kaikki virheet aiheuttavat null-paluuarvon.
5    *
6    * @author Markku Vire
7    * @version 1.0, 17.3.2003
8    */
9   
10  import java.io.*;
11  
12  public class Asetukset
13  {
14    public static String hae(String tiedosto, String ryhma, String nimi)
15    {
16      BufferedReader f;
17  
18      try {
19        f = new BufferedReader(new FileReader(tiedosto));
20      }
21      catch (FileNotFoundException e) {
22        return null;
23      }
24  
25      String etsittava = "[" + ryhma + "]";
26      String alku = nimi + "=";
27      String rivi;
28  
29      try {
30  
31        // Luetaan, kunnes kohdataan haluttu lohko
32  
33        do {
34          rivi = f.readLine();
35          if ( rivi == null ) return null;
36        } while (etsittava.compareToIgnoreCase(rivi.trim()) != 0);
37  
38        // Ok, nyt tutkitaan, alkaako jokin rivi nimi=
39        // Mikäli alkaa => palautetaan loppuosa, muuten null
40  
41        do {
42          rivi = f.readLine();
43          if ( rivi == null || ( rivi.length() > 0 && rivi.charAt(0) == '[' ) )
44            return null;
45        } while (!rivi.startsWith(alku));
46  
47        // Mikäli päästään tänne, ollaan löydetty rivi joka alkaa merkkijonolla
48        // alku. Palautetaan rivin loppuosa.
49  
50        return rivi.substring(alku.length());
51      }
52      catch (IOException e) {
53        return null;
54      }
55      finally {
56        try {
57          f.close();
58        }
59        catch (IOException e) {
60        }
61      }
62    }
63  
64    public static void main(String[] args)
65    {
66      String arvo = Asetukset.hae("tiedosto.ini", "Asetukset", "toka");
67      System.out.println(arvo);
68    }
69  }
70