我有一个cvs文件,我想以arff格式转换。
我在构建路径和libs /中添加了这个外部jar: WEKA-3.6.6-的android.jar
我的cvs文件没有标题行,它是这样的:
0.56024569272995,0.34556102752685547,0.4986509583393733,0.025362752945036676,0.4992934039810014,0.56024569272995,0.34556102752685547,0.4986509583393733,0.025362752945036676,0.4992934039810014,0.56024569272995,0.34556102752685547,0.0,0.500127645839251,0.4992934039810014
0.5616480112075806,0.33134251832962036,0.48604997404442984,0.024514018315056698,0.48666570100992756,0.5616480112075806,0.33134251832962036,0.48604997404442984,0.024514018315056698,0.48666570100992756,0.5616480112075806,0.33134251832962036,0.0,0.4874815703186685,0.48666570100992756
0.6170566082000732,0.3362383246421814,0.48836380223366727,0.026372415937359308,0.4890729818269294,0.6170566082000732,0.3362383246421814,0.48836380223366727,0.026372415937359308,0.4890729818269294,0.6170566082000732,0.3362383246421814,0.0,0.4898928868146426,0.4890729818269294
根据weka网站,此代码将cvs转换为arff:
public void convertCSVtoArff(String activity){
try {
String file_source = activity + ".csv";
String file_dest = activity + ".arff";
// load CSV
CSVLoader loader = new CSVLoader();
loader.setSource(new File(file_path + "samples/" + file_source));
String[] options = {"-H"};
loader.setOptions(options);
Instances data = loader.getDataSet();
// save ARFF
ArffSaver saver = new ArffSaver();
saver.setInstances(data);
saver.setFile(new File(file_path + "samples/" + file_dest));
saver.setDestination(new File(file_path + "samples/" + file_dest));
saver.writeBatch();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
当我运行Android应用程序时,LogCat给了我这个错误:
E/AndroidRuntime(23492): FATAL EXCEPTION: main
E/AndroidRuntime(23492):
java.lang.ExceptionInInitializerError
E/AndroidRuntime(23492):at
weka.core.converters.CSVLoader.readHeader(CSVLoader.java:882)
E/AndroidRuntime(23492):at
weka.core.converters.CSVLoader.readStructure(CSVLoader.java:534)
E/AndroidRuntime(23492):at
weka.core.converters.CSVLoader.getStructure(CSVLoader.java:519)
E/AndroidRuntime(23492):at
weka.core.converters.CSVLoader.getDataSet(CSVLoader.java:552)
E/AndroidRuntime(23492):at
com.unipa.file.FileOperation.convertCSVtoArff(FileOperation.java:151)
E/AndroidRuntime(23492):at
.
.
.
E/AndroidRuntime(23492): Caused by: java.lang.NullPointerException
E/AndroidRuntime(23492): at weka.core.converters.ConverterUtils.<clinit>
(ConverterUtils.java:741)
E/AndroidRuntime(23492): ... 19 more
我不明白这是什么问题。
可以帮我解决这个问题吗?
提前致谢并抱歉我的英语。