首页 > 解决方案 > 如何从文本文件中删除字符串?

问题描述

我正在使用文本文件创建简单的地址簿,但我的代码在删除字符串方法时抛出了太多错误。它在大多数地方显示 IO 异常,当 IO 异常得到解决时,编译错误在 5 个地方找不到符号在一些标识符中。这是我的代码:

    public void DeletePerson(){    
      try {
         File file = new File("AddressBook.txt");
         File temp = File.createTempFile("file", ".txt", file.getParentFile()); 
         BufferedReader reader = new BufferedReader(new InputStreamReader(new 
           FileInputStream(file), Charset));

         PrintWriter writer = new PrintWriter(new OutputStreamWriter(new 
           FileOutputStream(temp), Charset));
         //More code ...
      } finally {
        if (writer != null) {
            System.out.println("Closing PrintWriter");
            writer.close(); 
        } else { 
            System.out.println("PrintWriter not open");
        }
        file.delete();
        temp.renameTo(file);
      }
    }

输出:

    C:\java\AddressBook>javac AddressBook.java
    
    AddressBook.java:50:错误:找不到符号
    
        如果(作家!= null){
            ^
      符号:变量写入器
    
      位置:类地址簿
    
    AddressBook.java:52:错误:找不到符号
    
            writer.close();
            ^
      符号:变量写入器
    
      位置:类地址簿
    
    AddressBook.java:57:错误:找不到符号
    
    文件.删除();
    ^
      符号:变量文件
    
      位置:类地址簿
    
    AddressBook.java:58:错误:找不到符号
    
    temp.renameTo(文件);
                  ^
      符号:变量文件
    
      位置:类地址簿
    
    AddressBook.java:58:错误:找不到符号
    
    temp.renameTo(文件);
    ^
      符号:可变温度
    
      位置:类地址簿

我正在创建通讯录并在删除人名方法中发现问题。首先,我必须从用户那里获取输入,即人名,然后我必须检查文本文件(读取文件)并找到匹配的单词,然后将其从地址簿中删除。我还采用了其他方法来删除名称,但它们并没有彻底奏效。请检查代码并解决问题。

标签: javastringfile

解决方案


块内的你FilePrintWriter对象 你可以尝试使用它。try

File file = new File("AddressBook.txt");
PrintWriter writer = new PrintWriter(new FileWriter(file,Charset.forName("UTF-8")));//use "throws IOException" in your method.
try{
//some java code
}finally{
    if (writer != null) { 
        System.out.println("Closing PrintWriter");
        writer.close(); 
    } else { 
        System.out.println("PrintWriter not open");
    } 
    file.delete();
}

推荐阅读