Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中读取文本文件数据的问题_Java - Fatal编程技术网

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

在Java中读取文本文件数据的问题,java,Java,我有以下代码: BufferedReader br=newbufferedreader(newfilereader(“userdetails.txt”); 字符串str; ArrayList stringList=新建ArrayList(); 而((str=br.readLine())!=null){ 字符串datavalue[]=str.split(“,”); 字符串类别=数据值[0]; 字符串值=数据值[1]; stringList.add(类别); stringList.add(值); }

我有以下代码:

BufferedReader br=newbufferedreader(newfilereader(“userdetails.txt”);
字符串str;
ArrayList stringList=新建ArrayList();
而((str=br.readLine())!=null){
字符串datavalue[]=str.split(“,”);
字符串类别=数据值[0];
字符串值=数据值[1];
stringList.add(类别);
stringList.add(值);
}
br.close();

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

不是100%确定,但您不能这样做吗
stringdatavalue[]=str.split(“--”)
还是什么

示例文件:

x,y,z--123--你好,世界

输出:

“x,y,z”,
"123",

“Hello World”

当数据有“,”时,通常称为CSV文件。是一个相当常用的库来处理它。格式看起来很简单,但也有一些奇怪之处。如果我理解正确,请参阅了解一些详细信息:

    String str = "category,vvvv,vvv";
    int i = str.indexOf(',');
    String category = str.substring(0, i);
    String value = str.substring(i + 1);
split()使用正则表达式。 如果读卡器代码工作正常,请执行以下操作

str.split("\\,");

解决方案如下所示:

    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();
BufferedReader br=newbufferedreader(newfilereader(“userdetails.txt”);
字符串str;
ArrayList stringList=新建ArrayList();
而((str=br.readLine())!=null){
int firstIndexOfComma=str.indexOf(',');
字符串类别=str.substring(0,firstIndexOfComma);
字符串值=str.substring(firstIndexOfComma+1);
stringList.add(类别);
stringList.add(值);
系统输出打印项次(类别+“”+值);
}
br.close();

如果值本身包含用作分隔符的逗号,则需要为值使用不同的分隔符。