2014-01-11 3 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

Вам не нужно вызывать createNewFile() перед новым FileOutputStream(). – EJP

ответ

0

Вашего inputFile является FileReader, который не имеет методы delete(). Вы можете создать объект File для представления этого файла и дать этому File в качестве входных данных для конструктора FileReader. Затем вы также можете вызвать метод delete() на объекте File в конце, а не на 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 

} 
} 
Смежные вопросы