001 /* 002 * StringLoader 003 * 004 * Copyright (c) 2003 Marco Schmidt. 005 * All rights reserved. 006 */ 007 008 package net.sourceforge.jiu.apps; 009 010 import java.io.BufferedReader; 011 import java.io.IOException; 012 import java.io.InputStream; 013 import java.io.InputStreamReader; 014 import java.util.Vector; 015 016 /** 017 * This class loads a {@link Strings} resource from a text file. 018 * The text file must contain one 019 * @author Marco Schmidt 020 * @since 0.12.0 021 */ 022 public class StringLoader 023 { 024 private BufferedReader in; 025 private Integer langCode; 026 /** 027 * The directory of language resource files, default: 028 * <code>/resources/lang/</code>. 029 */ 030 public static String resourceDirectory = "/resources/lang/"; 031 032 public StringLoader() 033 { 034 this(Strings.determineSuitableIsoCode()); 035 } 036 037 public StringLoader(String iso639Code) 038 { 039 InputStream input = getClass().getResourceAsStream(resourceDirectory + iso639Code + ".txt"); 040 in = new BufferedReader(new InputStreamReader(input)); 041 langCode = Strings.findLanguageCode(iso639Code); 042 } 043 044 public Strings load() throws IOException 045 { 046 Vector list = new Vector(); 047 String line; 048 while ((line = in.readLine()) != null) 049 { 050 list.addElement(line); 051 } 052 if (list.size() < 1) 053 { 054 return null; 055 } 056 String[] data = new String[list.size()]; 057 for (int i = 0; i < list.size(); i++) 058 { 059 data[i] = (String)list.elementAt(i); 060 } 061 in.close(); 062 return new Strings(langCode, data); 063 } 064 }