Java 2 Micro Edition (J2ME)


Использование текстовых файлов приложения для определения локализованных ресурсов - часть 4


132 в директории приложения bin/.

133

134 @param file - имя определенного пользователем файла

135 ресурса приложения.

136 */

137 private int loadResources(String file)

138 {

139. Class с = getClass () ;

140

141 if (file == null)

142 {

143 return -1 ;

144 }

145 InputStream is = null;

146 is = с.getResourceAsStream(file);

147 if (is == null)

148 {

149 return -1;

150 }

151 Reader reader = new InputStreamReader(is);

152 processStream(reader);

153 return 0;

154 }

155

156 /**

157

158 */

159 private void processStream(Reader stream)

160 {

161 if (stream == null)

162 {

163 return;

164 }

165 StringBuffer key = new StringBuffer();;

166 StringBuffer value = new StringBuffer ();;

167 while (true)

168 {

169 // Считываем строку. Предполагается, что каждая строка

170 // содержит ключ и значение,

171 // отделенные двоеточием. Если -1, значит

172 // мы достигли конца файла.

173 key.deletef(), key.length());

174 value.delete(0, value.length());

175 int status = readLine(key, value, stream);

176 if (status == -1)

177 {

178 break;

179 }

180

181 // Вставляем этот ресурс в хэшированную таблицу

182 // ресурсов приложения.

183 resources.put(key, value);

184 }

185 }

186

187 /**

188 Считывает и обрабатывает следующую не пустую строку

189 из потока. Формат строки ожидается следующий

190 <ключ>[ \t]*:[ и]*<значение>, где

191 <ключ> and <значение> являются метками, состоящими

192 из буквенных символов или знаков пунктуации, но не

193 из пустых знаков пробела.

194 */

195 private int readLine(StringBuffer key,

196 StringBuffer value,

197 Reader stream)

198 {

199 if (key == null || value == null ||

200 stream == null)

201 {

202 return -1;

203 }

204

205 try

206 {

207 char c;

208 while (true)

209 {

210 // Пропускаем символы новой строки.

211 while (true)

212 {

213 с = (char) stream.read ();

214 if (c == r\n')

215 {

216 continue;

217 }

218 break;

219 }

220

221 if (lisWhiteSpace(c) Si !isDelimeter(c))




Начало  Назад  Вперед



Книжный магазин