2014-01-11 51 views
0

我已經使用了函數oldFile.delete()和newfile.rename(「oldFile.txt」)都是文件對象,但這不起作用,刪除函數和重命名函數給出錯誤, 源代碼如下:編譯錯誤:在java中刪除和重命名文件?

 package urlFiltering; 

     import java.io.*; 
     import java.net.InetAddress; 

     public class mainForm{ 


public static void main(String args[]) throws IOException { 

    String hostName="www.stackoverflow.com"; 

     InetAddress inetAddress=InetAddress.getByName(hostName); 
        String host=inetAddress.toString(); 
    FileReader inputFile = new FileReader("StoredIp.txt"); 
    File tempFile= new File("tempFile.txt"); 
      BufferedReader bufferReader = new BufferedReader(inputFile); 
      String line; 
      while ((line = bufferReader.readLine()) != null) { 
        if(host.equals(line)) 
          continue; 
         else 
          { 
           if (!tempFile.exists()) { 
            tempFile.createNewFile(); 
           } 
           FileWriter fw = new FileWriter(tempFile,true); 
           BufferedWriter bw = new BufferedWriter(fw); 
           bw.write(line); 
           bw.newLine(); 
           bw.close(); 
          }         
        } 

       bufferReader.close(); 
       inputFile.delete();//error 
       tempFile.renameTo("StoredIp.txt"); //error 

     } 
    } 
+0

您不需要在新的FileOutputStream()之前調用createNewFile()。 – EJP

回答

0

inputFileFileReader,它不具有delete()方法。您可以創建一個File對象來表示該文件,並將該File作爲FileReader構造函數的輸入。然後,您還可以在最後的File對象上調用delete()方法,而不是在FileReader上。 renameTo()會給出錯誤,因爲該方法預計的是File而不是String。代替它做renameTo(new File("StoredIp.txt"))。換句話說,這個:

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileReader; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.net.InetAddress; 

public class mainForm { 

public static void main(String args[]) throws IOException { 

    String hostName = "www.stackoverflow.com"; 

    InetAddress inetAddress = InetAddress.getByName(hostName); 
    String host = inetAddress.toString(); 
    File inputF = new File("StoredIp.txt"); 
    FileReader inputFile = new FileReader(inputF); 
    File tempFile = new File("tempFile.txt"); 
    BufferedReader bufferReader = new BufferedReader(inputFile); 
    String line; 
    while ((line = bufferReader.readLine()) != null) { 
     if (host.equals(line)) 
      continue; 
     else { 
      if (!tempFile.exists()) { 
       tempFile.createNewFile(); 
      } 
      FileWriter fw = new FileWriter(tempFile, true); 
      BufferedWriter bw = new BufferedWriter(fw); 
      bw.write(line); 
      bw.newLine(); 
      bw.close(); 
     } 
    } 

    bufferReader.close(); 
    inputF.delete();// no more error 
    tempFile.renameTo(new File("StoredIp.txt")); // no more error 

} 
}