- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个项目,该项目有一个读取文件的方法,找到传入的字符串写入一个名为 temp 的新文件(其中没有传入的行),然后删除原始文件并重命名为 temp到原来的名字。我可以毫无错误地运行它,但它不会向新文件输出任何内容。我已经完成了通常的调试,发现错误在于将行写入新文件的行。我觉得我犯了一个小错误,叫错了。任何帮助解决它都会很棒......
这是代码
public static void LineDelete(String Filename, String Content) throws IOException {
try {
File flights = new File("AppData/" + Filename);
File temp;
temp = new File("AppData/temp.txt");
FileWriter fstream;
BufferedWriter out;
try (Scanner sc = new Scanner(flights)) {
fstream = new FileWriter("AppData/temp.txt", true);
out = new BufferedWriter(fstream);
boolean exis = temp.exists();
if (exis) {
temp.delete();
temp = new File("AppData/temp.txt");
boolean createNewFile = temp.createNewFile();
} else {
boolean creatNewFile = temp.createNewFile();
}
String f;
while (sc.hasNextLine()) {
f = sc.nextLine();
if (!f.equals(Content)) {
out.newLine();
out.write(f);
}
}
}
fstream.close();
//out.close();
flights.delete();
File flightsn = new File("AppData/" + Filename);
temp.renameTo(flightsn);
} catch (FileNotFoundException ex) {
Logger.getLogger(FileWrite.class.getName()).log(Level.SEVERE, null, ex);
}
}
最佳答案
您应该在 out
(BufferedReader) 上调用关闭。
你也应该在 try-catch-finally 的 finally 子句中关闭它。
你的代码应该或多或少
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.logging.Level;
import java.util.logging.Logger;
public class FileWrite {
public static void LineDelete(String Filename, String Content)
throws IOException {
BufferedWriter out = null;
File flights = new File("AppData/" + Filename);
File temp = new File("AppData/temp.txt");
FileWriter fstream = null;
try {
Scanner sc = new Scanner(flights);
fstream = new FileWriter("AppData/temp.txt", true);
out = new BufferedWriter(fstream);
boolean exis = temp.exists();
if (exis) {
temp.delete();
temp = new File("AppData/temp.txt");
boolean createNewFile = temp.createNewFile();
} else {
boolean creatNewFile = temp.createNewFile();
}
String f;
while (sc.hasNextLine()) {
f = sc.nextLine();
if (!f.equals(Content)) {
out.newLine();
out.write(f);
}
}
} catch (IOException ex) {
Logger.getLogger(FileWrite.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
out.close();
} catch (Exception e) {
Logger.getLogger(FileWrite.class.getName()).log(Level.SEVERE, null, e);
}
}
if(flights.exists()){
flights.delete();
File flightsn = new File("AppData/" + Filename);
temp.renameTo(flightsn);
}
}
}
关于Java读取文件并删除行,无法找出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10270578/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!