簡體   English   中英

編譯錯誤:在Java中刪除和重命名文件?

[英]Compile errors: deleting and renaming file in java?

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

      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

       }
    }

您的inputFile是一個FileReader ,它沒有delete()方法。 您可以創建一個File對象來表示該文件,並將該File作為輸入提供給FileReader構造函數。 然后,您還可以最后在File對象上而不是FileReader上調用delete()方法。 renameTo()給您一個錯誤,因為該方法需要File而不是String renameTo(new File("StoredIp.txt"))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

}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM