从j2me中的csv文件中读取单个单元格记录

时间:2012-09-03 04:50:56

标签: csv java-me

在我的J2ME应用程序中,我从.csv file获取数据并显示设备上文件中的所有数据。但根据我的要求,我想在设备上只显示单个单元格数据。那么,如何从.csv文件中获取单个单元格记录并将其显示在设备上?

评论后更新

InputStream is = getClass().getResourceAsStream("/" + "csvsample.csv");

StringBuffer sb = new StringBuffer();

 try {

int chars;

 while ((chars = is.read()) != -1) {

 sb.append((char) chars);

 return sb.toString();

 } catch (Exception e) {

System.out.println("Exception Occurance::" + e);

}

return sb.toString();

}

2 个答案:

答案 0 :(得分:2)

首先,您必须一次阅读一行。为此,您可以使用以下方法:

private boolean readLine (InputStream is, StringBuffer line) throws IOException {
    int c = in.read();

    while (c != -1 && c != '\n') {
        line.append((char) c);
        c = in.read();
    }

    return line.length() > 0;
}

然后,您需要根据,分隔符拆分行内容,例如,就像另一个问题How do I split strings in J2ME?一样。

while (readLine(is, sb)) {
  String line = sb.toString();
  // split line content

  sb.setLength(0);
}

答案 1 :(得分:0)

将整个InputStream用于字符串的代码....

你想使用一个阅读器,以便你支持非ASCII字符集,并且你想要读取块,而不是逐字节。

以下是我使用的内容:

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;

public class StreamUtil {
    public static String consumeInputStream(InputStream in) throws IOException {
        Reader reader = new InputStreamReader(in);
        char[] buff = new char[4096];
        StringBuffer sb = new StringBuffer();
        int ret = 0;
        while(ret != -1) {
            ret = reader.read(buff);
            if(ret > 0) {
                sb.append(buff, 0, ret);
            }
        }
        return sb.toString();
    }
}

话虽如此,这个问题需要很多帮助。这是毫无希望的模糊,你基本上要求有人为你做所有的工作。如果您能够将其澄清到一个非常精确和具体的问题,您将得到更好的回应。 StackOverflow用于回答SPECIFIC问题,而不是询问是否有人会为您构建功能。