如何从java中的文本文件中删除整数记录?

时间:2015-10-24 20:25:07

标签: java file-io text-files

我有一个简单的问题...我写这段​​代码来删除以字符串开头的记录但是当试图应用这段代码来删除另一条以整数开头的记录时,它给了我一个错误

这是我的代码:

public void deleteSupplier(String company) throws FileNotFoundException, IOException
{
    File inputFile = new File("C:\\Users\\فاطمة\\Downloads\\suppliers.txt"); // Your file  
    File tempFile = new File("C:\\Users\\فاطمة\\Downloads\\suppliers2.txt"); // temp file

    BufferedReader reader = new BufferedReader(new FileReader(inputFile));
    BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));

    String currentLine;

    while((currentLine = reader.readLine()) != null) 
    {
        if(currentLine.contains(company))
            continue;

        writer.write(currentLine);
        writer.newLine();
    }

    writer.close();
    reader.close();

    File inputFile1 = new File("C:\\Users\\فاطمة\\Downloads\\suppliers.txt"); // Your file  

    File tempFile1 = new File("C:\\Users\\فاطمة\\Downloads\\suppliers2.txt"); // temp file

    inputFile1.delete();
    boolean successful = tempFile1.renameTo(inputFile1);

    if(successful == true)
        System.out.println("Supplier deleted successfully");

    else if(successful == false)
        System.out.println("Error: deleting failed, supplier might not be found.");
}
例如,我有一个这样的记录:

   Hamada Port 111
   Hobeee Jack 447

代码适用于此,但在尝试为此类记录应用代码时

   1 Hamada 147
   7 Hobeee 444

它给了我错误。

注意:我用过:

   int id

而不是

   String company

并在函数中使用id而不是company:

        currentLine.contains(id);

但它会出错。

请帮忙吗?

1 个答案:

答案 0 :(得分:0)

因为您正在致电'包含'在String类的方法中,您只能将CharSequence子类的实例作为参数(例如String)给出(就像您对字符串的情况所做的那样)。由于Integer不是CharSequence接口的子类,因此在应用于' contains'之前必须进行转换。方法。将int值转换为String将是最佳选择。

{{1}}