我正在尝试从CSV
数据中获取数据。但是,如果我尝试读取数据以便我可以使用其中的单个数据,它会输出额外的内容,如:
x sr java.util.ArrayListx a I sizexp w t 17mei2017t Home - Gastt 4 - 1t (4 - 0)t
使用此代码:
FileInputStream in = openFileInput("savetest13.dat");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
List<String[]> resultList = new ArrayList();
String csvLine;
while ((csvLine = reader.readLine()) != null){
String[] row = csvLine.split(",");
out.println("while gepakt");
out.println(row);
date = row[0];
out.println("date: "+date);
resultList.add(row);
txtTest.setText(date);
}
但每当我读取文件以检查它包含哪些数据时,我都会获得与我输入的数据完全相同的数据。但我无法用stuff
分割数据:
FileInputStream in = openFileInput("savetest13.dat");
ObjectInputStream ois = new ObjectInputStream(in);
List stuff = (List) ois.readObject();
txtTest.setText(String.valueOf(stuff));
[17 mei 2017,Home - Guest,2 - 1,(2 - 0),]
我试图将它们分为date
,names
,score1
,score2
。
哪2个更好用,怎样才能得到正确的输出,这是我无法获得的?
答案 0 :(得分:0)
您没有将CSV写入输出文件,而是使用标准java序列化ObjectOutputStream#writeObject(...)
来创建该文件。尝试使用CSV库以CSV格式写入/读取数据(请参阅hier),在此之前,请启动here以了解CSV,因为
[17 mei 2017, Home - Guest, 2 - 1, (2 - 0), ]
不是csv,而只是您正在使用的列表的toString
的输出。
答案 1 :(得分:0)
这是一种编写正确格式的CSV文件的简便方法。这是一个简单的示例,它不考虑需要转义数据中的任何逗号。您可以打开在Excel,Google表格,OpenOffice等中创建的文件,并查看其格式是否正确。
final String COMMA = ",";
final String NEW_LINE = System.getProperty("line.separator");
ArrayList<String> myRows = new ArrayList<String>();
// add comma delimited rows to ArrayList
myRows.add("date" + COMMA +
"names" + COMMA +
"score1" + COMMA +
"score2"); // etc.
// optional - insert field names into the first row
myRows.add(0, "[Date]" + COMMA +
"[Names]" + COMMA +
"[Score1]" + COMMA +
"[Score2]");
// get a writer
final String fileName = "myFileName.csv";
final String dirPath = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS).getAbsolutePath();
File myDirectory = new File(dirPath);
FileWriter writer = new FileWriter(new File(myDirectory, fileName));
// write the rows to the file
for (String myRow : myRows) {
writer.append(myRow + NEW_LINE);
}
writer.close();