2015-09-28 97 views
-3

我想從特定行讀取等等。例如,我想從第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前景{晴天,陰天,雨天}
@attribute溫度{熱,溫和,涼爽}
@屬性溼度{高,普通}
@attribute windy {真,假}
@attribute發揮{是,否}

@data
晴朗,炎熱,高,FALSE,沒有
晴朗,炎熱,高,TRUE,沒有
陰,熱,高,假,是
多雨,溫和,高,假,是
多雨,涼爽的,正常的,假,是
多雨,涼爽,正常,TRUE,沒有
陰,冷,正常,TRUE,是
晴朗,溫和,高,假,沒有
晴朗,涼爽,正常,假,是
多雨,溫和的,正常的,假,是
陽光,溫和的,正常的,TRUE,是
陰沉沉的,溫和的,高,TRUE,是
陰,熱,正常,假,是
多雨,溫和,高,TRUE,沒有

希望的輸出:

weather.symbolic

前景溫度溼度多風播放

晴朗,炎熱,高,FALSE,沒有
晴朗,炎熱,高,TRUE,沒有
陰,熱,高,假,是
多雨,溫和,高,假,是
多雨,冷靜,正常的,假,是
多雨,涼爽,正常,TRUE,沒有
陰,冷,正常,TRUE,是
晴朗,溫和,高,FALSE,沒有
晴朗,涼爽,正常,FALSE,是
多雨,輕度,正常,假,是
晴,溫和,正常,真,是
陰沉沉的,溫和的,高,TRUE,是
陰,熱,正常,假,是
多雨,溫和,高,TRUE,沒有

+1

你的問題似乎不符合你的問題。對於初學者來說,輸入文件中甚至沒有32行。 –

+0

您所需的輸出是*不*跳過第一行,它將它們和*包括*轉換爲輸出。所以你的問題根本不符合你期望的輸入/輸出。 –

回答

0

關於你的問題:如果你知道行你想要跳過,只需在循環前定義一個計數器變量並計算循環中讀取的行。

int count = 0; 
while { 
//.... 
    if (count >=8){ 
    //... 
    } 
    count++; 
} 

有關數據。例如,你也可以使用一個布爾變量外循環和存儲閹@data已經被讀取 - 這將是更好,如果行索引,是已知或可能隨時間而改變。