繁体   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