2014-03-06 69 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,不客气。 –