从特定行读取一行直到文件末尾

时间:2015-09-28 02:16:42

标签: java arff

我想从特定行读取等等。例如,我想从第8行读取,直到它到达文件的末尾。有人可以教我如何编程吗?

我目前的代码:

import java.util.*;
import java.io.File;
import java.io.FileNotFoundException;

public class Arff {
    public static void main(String[] args) throws FileNotFoundException {

        File TextFile = new File("weather.nominal.arff");
        Scanner reader = new Scanner(TextFile);

        while(reader.hasNextLine()) {
            String text = reader.nextLine();
            String[] SplitData = text.split(" ");

            if (SplitData[0].equals("@relation")) {
                System.out.println(SplitData[1]);
                System.out.println();
            }
            if (SplitData[0].equals("@attribute")) {
                System.out.print(SplitData[1] + " ");
            }
        }
    }
}

weather.nominal.arff

  

@relation weather.symbolic
  @attribute outlook {sunny,overcast,rainy}
  @attribute temperature {hot,mild,cool}
  @attribute humidity {high,normal}
  @attribute windy {TRUE,FALSE}
  @attribute play {yes,no}

     

@data
  阳光灿烂,热,高,FALSE,没有
  阳光灿烂,热,高,TRUE,没有
  阴,热,高,假,是
  多雨,温和,高,假,是
  多雨,凉爽的,正常的,假,是
  多雨,凉爽,正常,TRUE,没有
  阴天,凉爽,正常,TRUE,是
  阳光明媚,温和,高,FALSE,没有
  阳光,凉爽的,正常的,假,是
  多雨,温和的,正常的,假,是
  阳光明媚,轻度,正常,TRUE,是
  阴沉沉的,温和的,高,TRUE,是
  阴沉沉的,热的,正常的,假,是
  多雨,温和,高,真,没有

期望的输出:

  

weather.symbolic

     

前景温度湿度大风播放

     

阳光,热,高,FALSE,没有
  阳光灿烂,热,高,TRUE,没有
  阴,热,高,假,是
  多雨,温和,高,假,是
  多雨,凉爽的,正常的,假,是
  多雨,凉爽,正常,TRUE,没有
  阴天,凉爽,正常,TRUE,是
  阳光明媚,温和,高,FALSE,没有
  阳光,凉爽的,正常的,假,是
  多雨,温和的,正常的,假,是
  阳光明媚,轻度,正常,TRUE,是
  阴沉沉的,温和的,高,TRUE,是
  阴沉沉的,热的,正常的,假,是
  多雨,温和,高,真,没有

1 个答案:

答案 0 :(得分:0)

关于你的问题:如果你知道要跳过的行,只需在循环之前定义一个计数器变量并计算你在循环中读取的行。

+

关于示例数据,您还可以在循环外部使用布尔变量,并且已经读取了存储符号int count = 0; while { //.... if (count >=8){ //... } count++; } - 如果行索引尚未知道或者可能随时间变化,则会更好。