【发布时间】:2013-06-17 14:50:33
【问题描述】:
我刚开始开发一个简单的黑莓应用程序,它在RichTextField 和MainScreen 上显示一个文本序列。当我直接在源代码中定义String时,显示它就没有问题了。但是,如果我尝试从位于 res 文件夹中的 .txt 文件中读取它,那么我会得到一个 NullPointerException。
下面的代码是我到目前为止所做的。
package mypackage;
import java.io.IOException;
import java.io.InputStream;
import net.rim.device.api.io.IOUtilities;
import net.rim.device.api.ui.component.RichTextField;
import net.rim.device.api.ui.container.MainScreen;
public final class MyScreen extends MainScreen{
String str = readFile("Testfile.txt");
public MyScreen(){
setTitle("Read Files");
add(new RichTextField(str));
}
public String readFile(String filename){
InputStream is = this.getClass().getResourceAsStream("/"+filename);
try {
byte[] filebytes = IOUtilities.streamToBytes(is);
is.close();
return new String(filebytes);
}
catch (IOException e){
System.out.println(e.getMessage());
}
return "";
}
}
我在这个论坛中找到了这段代码的一部分,但我的问题是我不明白何时必须打开连接以及何时关闭它。
我什么时候需要缓冲区?
为什么我必须将InputStream 转换为byte[],然后将byte[] 转换为String?
我只需要一种方法,我可以在其中输入文件名并返回一个字符串对象,其中包含我的 .txt 文件中的文本。
当然,该方法应该节省资源......
【问题讨论】:
-
文件
Testfile.txt是否放置在您的项目中,直接在res文件夹中?它是这样拼写的吗?您在使用 BlackBerry Eclipse 插件吗? -
是的,文件在 res 文件夹中,它的拼写完全像这样。是的,我正在使用 BlackBerry Eclipse 插件
标签: string file text blackberry