正在解析要导入到 android 应用程序的 csv 文件
parsing the csv file to import to android app
我正在使用 android 应用导入 csv 文件来填充我的数据库。
我正在使用 OpenCSV 库来执行此操作。我希望使用 CSV reader 从输入流中读取。
我正在使用 Gmail 的导入功能,所以我使用 android:scheme=content
它使 csv 文件成为 InputStream
。
里面有 3 列。有些行有 ,
个字符。
所以当我尝试使用 ,
分隔列时出现错误。
我希望知道如何解决列内的逗号问题。
你可以用另一个分隔符得到你的 csv 吗?如果是,您可以使用此分隔符从 de docs...
调用您的 csv reader
CSVReader(Reader reader, char separator)
Constructs CSVReader with supplied separator.
如果列中有逗号,则很难正确读取 csv 文件,我将向您展示不需要任何库的代码:
File f=new File("C:/Users/Public/"+filename+".csv");
Scanner sc=new Scanner(fc);
sc.useDelimiter("\r");
char cd='"';
//Create scanner string seperator ","
String g=String.valueOf(cd)+","+String.valueOf(cd);
//JOptionPane.showMessageDialog(null, "G: "+g);
String[] data=null;
while(sc.hasNextLine()){
data=null;
csvtemp=sc.nextLine().toString();
//remove first character ", string from second character
csvtemp=csvtemp.subString(1);
//remove last character ", string from first character to secondlast
csvtemp=csvtemp.subString(0,csvtemp.length()-1);
//Split record by seperator "," and copy to array
data=csvtemp.split(g);
}
sc.close();
我正在使用 android 应用导入 csv 文件来填充我的数据库。
我正在使用 OpenCSV 库来执行此操作。我希望使用 CSV reader 从输入流中读取。
我正在使用 Gmail 的导入功能,所以我使用 android:scheme=content
它使 csv 文件成为 InputStream
。
里面有 3 列。有些行有 ,
个字符。
所以当我尝试使用 ,
分隔列时出现错误。
我希望知道如何解决列内的逗号问题。
你可以用另一个分隔符得到你的 csv 吗?如果是,您可以使用此分隔符从 de docs...
调用您的 csv reader CSVReader(Reader reader, char separator)
Constructs CSVReader with supplied separator.
如果列中有逗号,则很难正确读取 csv 文件,我将向您展示不需要任何库的代码:
File f=new File("C:/Users/Public/"+filename+".csv");
Scanner sc=new Scanner(fc);
sc.useDelimiter("\r");
char cd='"';
//Create scanner string seperator ","
String g=String.valueOf(cd)+","+String.valueOf(cd);
//JOptionPane.showMessageDialog(null, "G: "+g);
String[] data=null;
while(sc.hasNextLine()){
data=null;
csvtemp=sc.nextLine().toString();
//remove first character ", string from second character
csvtemp=csvtemp.subString(1);
//remove last character ", string from first character to secondlast
csvtemp=csvtemp.subString(0,csvtemp.length()-1);
//Split record by seperator "," and copy to array
data=csvtemp.split(g);
}
sc.close();