在Java中打开文件、写入文件和从文件中删除文件
我有一个赋值,其中有一个构造函数和两个方法。构造函数打开该文件,如果该文件不存在,它将创建一个。这些方法只是在文件中添加新行并从文件中删除特定行。我有这个:在Java中打开文件、写入文件和从文件中删除文件,java,file,file-io,Java,File,File Io,我有一个赋值,其中有一个构造函数和两个方法。构造函数打开该文件,如果该文件不存在,它将创建一个。这些方法只是在文件中添加新行并从文件中删除特定行。我有这个: public openFile(String fileName) { File f = new File(filename); BufferedReader b = new BufferedReader(new FileReader(f)); String line; if (f.exists()) {
public openFile(String fileName) {
File f = new File(filename);
BufferedReader b = new BufferedReader(new FileReader(f));
String line;
if (f.exists()) {
while ((line = b.readLine()) != null) {
if (b.readLine().contains(COMMA)) {
String[] tokens = line.split(COMMA); // parse information on line
User u = new User(tokens[0], tokens[1]); // Creates new user
} else {
f.createNewFile();
}
b.close();
}
}
}
我的其他方法是:
public add(String[] args) {
FileWriter fileWriter;
BufferedWriter bufferedWriter;
String message = args[1] + COMMA + args[2] + "\n";
try {
fileWriter = new FileWriter(TEST_CSV, true); // Test_CSV is name of the file I have to write to.
bufferedWriter = new BufferedWriter(fileWriter);
bufferedWriter.write(message);
bufferedWriter.close();
} catch (IOException e) {
//Do nothing
}
但它根本不起作用。我如何更改它,使它可以添加文件而不必每次删除它并创建新文件。我认为您的
f.createNewFile()代码>位于错误的位置,每次从文件中读取一行时它都在执行,请尝试以下操作:
public openFile(String fileName) {
File f = new File(filename);
BufferedReader b = new BufferedReader(new FileReader(f));
String line;
if (f.exists()) {
while ((line = b.readLine()) != null) {
if (b.readLine().contains(COMMA)) {
String[] tokens = line.split(COMMA); // parse information on line
User u = new User(tokens[0], tokens[1]); // Creates new user
}
}
} else {
f.createNewFile();
}
b.close();
}
另外,您在每行之后都要关闭缓冲读取器,因此我移动了b.close()代码>