Codename One アプリにヘルプ画面を追加したいです。テキストは他の文字列よりも長いので、別のファイルに入れて app-package に追加したいと思います。
どうすればいいですか?テキスト ファイルをどこに置くか、文字列を 1 回で簡単に読み取るにはどうすればよいですか?
(フォーム内のテキスト領域に文字列を配置する方法は既に知っています)
Codename One アプリにヘルプ画面を追加したいです。テキストは他の文字列よりも長いので、別のファイルに入れて app-package に追加したいと思います。
どうすればいいですか?テキスト ファイルをどこに置くか、文字列を 1 回で簡単に読み取るにはどうすればよいですか?
(フォーム内のテキスト領域に文字列を配置する方法は既に知っています)
Codename One Designer で、データ セクションに移動し、ファイルを追加します。
そこにテキストを追加して、 を使用して取得できますmyResFile.getData("name");
。
ファイルを src ディレクトリに保存し、次を使用して取得することもできますDisplay.getInstance().getResourceAsStream("/filename.txt");
テキストは IDE で編集できるので、リソース エディタではなくファイル システムにテキスト ファイルを配置することを好みます。メソッド getResourceAsStream は、ソリューションの最初の部分です。2 番目の部分は、テキストを一度にロードすることです。J2ME ではこれがサポートされていませんでした。バッファなどを自分で読み取ったり、処理したりする必要がありました。幸いなことに、コードネーム 1 にはユーティリティ メソッドがあります。したがって、私の作業方法は次のようになります。
final String HelpTextFile = "/helptext.txt";
...
InputStream in = Display.getInstance().getResourceAsStream(
Form.class, HelpTextFile);
if (in != null){
try {
text = com.codename1.io.Util.readToString(in);
in.close();
} catch (IOException ex) {
System.out.println(ex);
text = "Read Error";
}
}
次のコードは私にとってはうまくいきました。
//Gets a file system storage instance
FileSystemStorage inst = FileSystemStorage.getInstance();
//Gets CN1 home`
final String homePath = inst.getAppHomePath();
final char sep = inst.getFileSystemSeparator();
// Getting input stream of the file
InputStream is = inst.openInputStream(homePath + sep + "MyText.txt");
// CN1 Util class, readInputStream() returns byte array
byte[] b = Util.readInputStream(is);
String myString = new String(b);