FileReader : 字符流
BufferedReader : 也是字符流,但是在BufferedReader可以先把数据放到一个缓存区里,然后在进行处理,而且在BufferedReader 里有一个readLine()方法。
所谓缓冲区,就是能够一次性读取一块缓冲区大小的数据,再从缓冲区中去读取数据,而不用一点一点地直接从硬盘中抽取数据。

1 public void loadData(String path) throws IOException 2 { 3 BufferedReader br = new BufferedReader(new FileReader(new File(path))); 4 String line = br.readLine(); 5 while (line != null) 6 { 7 String[] segs = line.split("\\s"); 8 String label = segs[0]; 9 List<String> fieldList = new ArrayList<String>(); 10 for (int i = 1; i < segs.length; ++i) 11 { 12 fieldList.add(segs[i]); 13 Feature feature = new Feature(label, segs[i]); 14 int index = featureList.indexOf(feature); 15 if (index == -1) 16 { 17 featureList.add(feature); 18 featureCountList.add(1); 19 } 20 else 21 { 22 featureCountList.set(index, featureCountList.get(index) + 1); 23 } 24 } 25 if (fieldList.size() > C) C = fieldList.size(); 26 Instance instance = new Instance(label, fieldList); 27 instanceList.add(instance); 28 if (labels.indexOf(label) == -1) labels.add(label); 29 line = br.readLine(); 30 } 31 }