在Codename One中的Textscreen,如何阅读文本文件?

时间:2012-10-16 10:38:20

标签: java codenameone

我想在我的Codename One App中添加帮助屏幕。 由于文本比其他字符串更长,我想将它放在一个单独的文件中并将其添加到app-package。

我该怎么做?我在哪里放文本文件,如何轻松地将其读入一个字符串?

(我已经知道如何将字符串放入表单内的文本区域)

3 个答案:

答案 0 :(得分:5)

在Codename One Designer中,转到数据部分并添加文件。

您只需在其中添加文字,然后使用myResFile.getData("name");获取文字。

您还可以将文件存储在src目录中,并使用Display.getInstance().getResourceAsStream("/filename.txt");

获取该文件

答案 1 :(得分:1)

我更喜欢在文件系统而不是资源编辑器中使用文本文件,因为我可以使用IDE编辑文本。 getResourceAsStream方法是解决方案的第一部分。第二部分是一次加载文本。在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";
        }
    }

答案 2 :(得分:0)

以下代码对我有用。

//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);