从csv返回行

时间:2016-10-15 11:52:41

标签: android csv inputstream

嗨我有一个看起来像这样的csv:

r1c1|r1c2|r1c3
r2c1|r2c2|r2c3

如您所见,它由字符“|”

分隔

在我的应用程序中,我试图使用输入流来爆炸。这是我的代码:

String line = "";
String cvsSplitBy = "|";


try {
    File initialFile = new File(myfile.txt);
    InputStream targetStream = new FileInputStream(initialFile);
    BufferedReader reader = new BufferedReader(new    InputStreamReader(targetStream));

        while ((line = reader.readLine()) != null) {
            String[] RowData = line.split(cvsSplitBy);

            String c0 = RowData[0];
            String c1 = RowData[1];
            String c2 = RowData[2];

            Toast.makeText(mainactivity.this, c2, Toast.LENGTH_LONG).show();
        }
}catch (IOException ex) {
// handle exception
 }

不幸的是,这似乎将csv中的每个字符都作为一行返回。上面的toast示例返回1然后返回2.

任何想法如何返回正确的列,任何人?

1 个答案:

答案 0 :(得分:1)

split()在给定的正则表达式的匹配项下拆分字符串,因此使用特殊字符(垂直条是其中之一)需要转义以去除其"权限&# 34。

String cvsSplitBy = "\\|"

请参阅文档:http://docs.oracle.com/javase/7/docs/api/java/lang/String.html