在eclipse中读取arff文件
(一)文件读取介绍:
对于字节流,在java中有FileInputStream。 该流用于从文件读取数据 new创建,FileInputStream类是InputStream的子类。 FileInputStream类主要用于从文件系统中的某个文件中获取输入字节。InputStream f = new FileInputStream(“C:/java/hello”);
对于字符流,在java中Reader类,是一个输入流,同样也是一个字符流。 Reader类是所有输入字符流的超类。
对于机器学习中常使用的ARFF文件,关键要new一个ArffLoader()对象,通过get DataSet()方法就可以读取里面的数据文件。当然要创建数据文件实例 ,并获得实例总数等等,需要导入weka中现成的包:
import weka.core.Instances;
import weka.core.converters.ArffLoader;
然后new文件对象时,导入Java.io 包,上周介绍了java中的io包几乎包含了所有操作输入、输出需要的类:
import java.io.File;-(二)代码和结果展示:
package WekaWork;
import java.io.File;
import weka.core.Instances;
import weka.core.converters.ArffLoader;
public class TestInstanceReader {
public static void main(String[] args) throws Exception {
//数据文件
File inputFile = new File("E://data//wekaData//balance-scale.data.csv.arff");
ArffLoader atf = new ArffLoader();
atf.setFile(inputFile);
//读入数据文件
Instances instances = atf.getDataSet();
//得到数据文件实例数
double sum = instances.numInstances();
//打印数据文件,及实例数
System.out.println(instances);
System.out.println("此数据文件中共计:"+sum+"个实例数");
}
}