2014-03-06 168 views
0

首先,我試圖做的是通過Scanner返回一個值,它涉及一個File文件而不傳遞給另一個字。這裏是我的源代碼:Java掃描文本文件

public static void deleteLine() throws IOException{ 
    File mainFile = new File("H:\\EcD\\data.txt"); 
    File tempFile = new File("H:\\EcD\\tempFile"); 
    Scanner input = new Scanner(mainFile); 
    String lineNumberToDelete = "4"; 
    while(input.hasNextLine()){ 
     if(!input.next().startsWith(lineNumberToDelete)) 
      System.out.println(input.nextLine()); 
    } 
    input.close();  
} 

我沒有使用任何未聲明的變量,所以我認爲這是可以的只是寫下方法。其實我的主要目的是從被設計爲這樣的文本字段刪除spesific行:

1) Line 1 Code 
2) Line 2 Code 
3) Line 3 Code 
4) Line 4 Code 
5) Line 5 Code 

回答

2

改成這樣,你的問題將得到解決。

public static void deleteLine() throws IOException{ 
    File mainFile = new File("H:\\EcD\\data.txt"); 
    File tempFile = new File("H:\\EcD\\tempFile"); 
    Scanner input = new Scanner(mainFile); 
    String lineNumberToDelete = "4"; 
    while(input.hasNextLine()){ 
     String line = input.nextLine(); 
     if(!line.startsWith(lineNumberToDelete)) 
      System.out.println(line); 
    } 
    input.close(); 

} 

然後寫入到目標文件替換System.out.println

+0

因爲我的聲望,我只是不能投票評論,但它工作得很好,我理解這些東西,非常感謝! :) – YigitOzkavci

+0

@YigitOzkavci NP,不客氣。 –