2011-07-13 40 views
0

我想從我的文件(特別是第二行)刪除一行 所以我用另一個文件來複制它,但使用下面的代碼第二個文件包含完全相同的文本(我的原始文件.txt和我的最終文件的.xml)如何通過知道它的位置從文件中刪除一行?

public static File fileparse() throws SQLException, FileNotFoundException, IOException { 
    File f=fillfile();//my original file 
    dostemp = new DataOutputStream(new FileOutputStream(filetemp)); 
    int lineremove=1; 
    while (f.length()!=0) { 
     if (lineremove<2) { 
      read = in.readLine(); 
      dostemp.writeBytes(read);  
      lineremove++; 
     } 

     if (lineremove==2) { 
      lineremove++; 
     } 

     if (lineremove>2) { 
      read = in.readLine(); 
      dostemp.writeBytes(read); 
     } 
    } 

    return filetemp; 
} 
+1

想想你會發生什麼後,如果。那真的是你想要的嗎? – Jacob

回答

5

你不讀線如果lineremove是2,也你檢查它是否大於2後,當它是2時增加它。這樣做:

int line = 1; 
String read = null; 
while((read = in.readLine()) != null){ 
    if(line!=2) 
    { 
    dostemp.writeBytes(read);  
    } 
    line++; 
} 
2

可以使用BufferedReaderreadLine()方法按行讀入線,檢查,如果你想要一條線,跳過你不想行。

檢查的文檔:BufferedReader

這裏是一個工作示例(不是最漂亮或乾淨的:)):

public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    BufferedReader in = null; 
    try { 
     in = new BufferedReader(new FileReader("d:\\test.txt")); 
    } catch (FileNotFoundException e3) { 
     // TODO Auto-generated catch block 
     e3.printStackTrace(); 
    } 
    PrintWriter out = null ; 
    try { 
     out = new PrintWriter (new FileWriter ("d:\\test_out.txt")); 
    } catch (IOException e2) { 
     // TODO Auto-generated catch block 
     e2.printStackTrace(); 
    } 

    String line = null; 
    int lineNum = 0; 
    try { 
     while((line = in.readLine()) != null) { 
      lineNum +=1; 
      if(lineNum == 2){ 
       continue; 
      } 
      out.println(line); 
     } 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    out.flush(); 

    out.close(); 
    try { 
     in.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

} 
相關問題