解析CSV并显示到textview

时间:2012-12-04 17:35:59

标签: java android csv textview

我有一个CSV文件。我希望我的Android应用程序读取它并在textview中显示它。 你能给我举个例子吗?

2 个答案:

答案 0 :(得分:0)

您可以使用扫描仪:

Scanner scanner = new Scanner(new File("file.csv");
String s = "";
while(scanner.hasNextLine());
    s+=scanner.nextLine();
String[] values = s.split(",");

这是一个2n进程,如果你想要使用子字符串,你可能会把它归结为n

这里是将它添加到textview

for(int i = 0; i < values.length; i++){
    TextView t = new TextView(getApplicationContext());
    t.setText(values[i]);
    layout.addView(t);
}

您可以使用setContentView(layout)在xml或代码本身中添加布局;

您也可以通过

来使用布局参数
 YourLayoutType.layoutParams params = new YourLayoutType.layoutParams(LayoutParams.whatLayoutTypeYouWant, LayoutParams.whatLayoutTypeYouWant); //(it goes width, height).

然后使用它们进行布局

layout.setLayoutParams(params);

注意:所有这些代码都应该在活动代码文件中。

答案 1 :(得分:0)

很久以前我已经制作了这些方法,因为Scanner不适合我:

public ArrayList<String> readFileLines(File file)
{
    ArrayList<String> lines = new ArrayList<String>();
    String line;
    BufferedReader br = null;

    try
    {
        br = new BufferedReader(new FileReader(file));

        while ( (line = br.readLine()) != null)
        {
            lines.add(line);
        }
    }
    catch (Exception e )
    {
        System.out.println("Cannot open file to read: " + e);
    }
    finally
    {
        try
        {
            br.close();
        }
        catch (IOException ex)
        {
            System.out.println("Cannot close file after saving: " + ex);
        }
    }

    return lines;
}

用法:

    for (String line: readFileLines(new File("file.csv")))
    {
        String[] values = line.split(";");
        // values[0] would be first value of line, values[1] would be second etc.
    }