CodenameOne - 读取文本文件的例程在 CN1 模拟器上工作,在 iOS 上不工作
CodenameOne - routine to read text file does work on CN1 simulator, does not work on iOS
我正在 iOS 上测试我的 CodenameOne 应用程序,但我在使用此方法时遇到了问题:
public void readFile() {
JSONText=new String();
InputStream is = null;
try {
is = FileSystemStorage.getInstance().openInputStream(Utils.getRootPath()+DATA_FILE_NAME);
InputStreamReader br = new InputStreamReader(is);
int numChars=is.available();
System.out.println("numchars "+String.valueOf(numChars)); // = 1
char[] b=new char[numChars];
br.read(b, 0,numChars);
JSONText = new String(b);
br.close();
} catch (IOException e) {
}
System.out.println("read "+JSONText); // '{'
}
上述方法在 CN1 模拟器上确实有效,但是
它在 iOS 中不起作用。
CodenameOne 有点跨平台,但不如 Java 本身好。有些方法必须在每个平台上进行测试。
我对 iOS 平台感兴趣。
该方法似乎不适用于 iOS,实际上它只读取 1 个字符。
仅读取要在 iOS 上的 CN1 应用程序中使用的简单文本文件的正确例程是什么?
您不需要所有这些代码。您可以只使用 Util.readToString() 将 InputStream 直接读入字符串。
String jsonText=Util.readToString(is);
System.out.println(jsonText);
我正在 iOS 上测试我的 CodenameOne 应用程序,但我在使用此方法时遇到了问题:
public void readFile() {
JSONText=new String();
InputStream is = null;
try {
is = FileSystemStorage.getInstance().openInputStream(Utils.getRootPath()+DATA_FILE_NAME);
InputStreamReader br = new InputStreamReader(is);
int numChars=is.available();
System.out.println("numchars "+String.valueOf(numChars)); // = 1
char[] b=new char[numChars];
br.read(b, 0,numChars);
JSONText = new String(b);
br.close();
} catch (IOException e) {
}
System.out.println("read "+JSONText); // '{'
}
上述方法在 CN1 模拟器上确实有效,但是
它在 iOS 中不起作用。
CodenameOne 有点跨平台,但不如 Java 本身好。有些方法必须在每个平台上进行测试。
我对 iOS 平台感兴趣。
该方法似乎不适用于 iOS,实际上它只读取 1 个字符。
仅读取要在 iOS 上的 CN1 应用程序中使用的简单文本文件的正确例程是什么?
您不需要所有这些代码。您可以只使用 Util.readToString() 将 InputStream 直接读入字符串。
String jsonText=Util.readToString(is);
System.out.println(jsonText);