在Java中读取文本文件数据的问题

时间:2012-11-18 16:23:40

标签: java

我有这段代码:

  BufferedReader br =new BufferedReader(new FileReader("userdetails.txt"));
     String str;
     ArrayList<String> stringList = new ArrayList<String>();
     while ((str=br.readLine())!=null){
        String datavalue [] = str.split(",");
        String category = datavalue[0];
        String value = datavalue[1];
        stringList.add(category);
        stringList.add(value);
     }
     br.close();

当变量category和value没有逗号(,)时,它可以工作,但是变量值中的值确实包含逗号。是否有一种方法可以拆分不使用逗号的索引?

5 个答案:

答案 0 :(得分:0)

当数据有','时,通常称为CSV文件。 OpenCSV是一个相当常用的库来处理它。格式看起来很简单,但它有怪癖。有关详细信息,请参阅wikipedia

答案 1 :(得分:0)

如果我理解正确的话:

    String str = "category,vvvv,vvv";
    int i = str.indexOf(',');
    String category = str.substring(0, i);
    String value = str.substring(i + 1);

答案 2 :(得分:0)

split()使用正则表达式。 如果读者代码完美无缺,请执行

str.split("\\,");

答案 3 :(得分:0)

解决方案如下:

    BufferedReader br =new BufferedReader(new FileReader("userdetails.txt"));
    String str;
    ArrayList<String> stringList = new ArrayList<String>();
    while ((str=br.readLine())!=null){
        int firstIndexOfComma = str.indexOf(',');
        String category = str.substring(0, firstIndexOfComma);
        String value = str.substring(firstIndexOfComma + 1);
        stringList.add(category);
        stringList.add(value);
        System.out.println(category+" "+value);
    }
    br.close();

答案 4 :(得分:-2)

不是100%肯定,但你不能这样做 String datavalue [] = str.split("--"); 还是什么?

示例文件:

x,y,z--123--Hello World

输出:

"x,y,z", "123", "Hello World"