java - J2ME读取文本文件

标签 java java-me

我正在尝试读取资源 (asdf.txt),但如果文件大于 5000 字节,(例如)将 4700 个空字符插入到内容变量的末尾。有什么办法可以去除它们吗? (或设置缓冲区的正确大小?)

代码如下:

String content = "";
try {
    InputStream in = this.getClass().getResourceAsStream("asdf.txt");
    byte[] buffer = new byte[5000];
    while (in.read(buffer) != -1) {
        content += new String(buffer);
    }
} catch (Exception e) {
    e.printStackTrace();
}

最佳答案

最简单的方法是做正确的事情:使用 Reader 读取文本数据:

public String readFromFile(String filename, String enc) throws Exception {
    String content = "";
    Reader in = new 
    InputStreamReader(this.getClass().getResourceAsStream(filename), enc);
    StringBuffer temp = new StringBuffer(1024);
    char[] buffer = new char[1024];
    int read;
    while ((read=in.read(buffer, 0, buffer.length)) != -1) {
        temp.append(buffer, 0, read);
    }
    content = temp.toString();
    return content;
}

请注意,您绝对应该定义要读取的文本文件的编码。

请注意,您的代码和此示例代码在 Java SE 和 J2ME 上同样运行良好。

关于java - J2ME读取文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/739691/

相关文章:

java - 使用 Play Framework 和 Ebean 的复杂连接

java-me - 您必须在类路径运行时异常中的 LWUIT 之前包含平台端口

java - j2me导入外部jar : what classpath?

java - 如何获取 J2ME 支持的所有设备的 IMEI?

java - 在java泛型类中将Integer转换为int

java - 我使用Netbeans 8.2和mysql查询浏览器1.1.20.build成功,错误说源代码不兼容

java - 无法找到包含用于 Selenium 测试的特定文本的按钮包装元素

java - Play & Ebean - 获得第一条记录

java - J2ME java对象问题?

java - TextField 不动态更新