java - 如何从文本文件中删除字符串?
问题描述
我正在使用文本文件创建简单的地址簿,但我的代码在删除字符串方法时抛出了太多错误。它在大多数地方显示 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(文件); ^ 符号:可变温度 位置:类地址簿
我正在创建通讯录并在删除人名方法中发现问题。首先,我必须从用户那里获取输入,即人名,然后我必须检查文本文件(读取文件)并找到匹配的单词,然后将其从地址簿中删除。我还采用了其他方法来删除名称,但它们并没有彻底奏效。请检查代码并解决问题。
解决方案
块内的你File
和PrintWriter
对象
你可以尝试使用它。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();
}
推荐阅读
- javascript - 如何使用 Math.Floor 获取特定索引?
- c - 如何建立一个符号,一个字符作为循环的条件
- python - 在python中将一组3D点转换为高度图像的最快方法
- javascript - 未捕获的类型错误:无法读取 null 的属性“jsonName”
- ruby-on-rails - 如何在不使用 docker-compose 的情况下配置 sidekiq&redis?
- sql-server - 需要将动态 SQL、开放式查询、JSON、动态变量和其他一些奇怪的东西混合到一个查询中
- javascript - Dynamodb 获取项目出错
- python - 在while循环中将元素附加到列表的问题
- html - 使用 VBA 抓取数据:为什么我无法访问某些网页上的 html 元素?
- c++ - 期望文本输出而不是数字