对于学校,我必须将网络服务作为练习的一部分。在这个程序中,我必须使用一个.txt文件作为数据库。当我使用BufferedWriter时,它表示信息已成功写入文件。但文件仍然没有改变。从文件中读取进展顺利。提前谢谢!
代码:
@WebService
public class Vak {
@WebMethod
public boolean addLesson(String lessonname, double mark){
if(!lessonname.equals("") || !(mark == 0.00)){
try{
FileInputStream fis = new FileInputStream("C:/marks.txt");
DataInputStream in = new DataInputStream(fis);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null){
String [] splitted = strLine.split(" ");
if(splitted[0].equalsIgnoreCase(lessonname)){
System.out.println("Lesson already exists");
return false;
}
}
BufferedWriter out = new BufferedWriter(new FileWriter("C:/marks.txt", true));
out.newLine();
out.write(lessonname + " " + mark);
return true;
}
catch(Exception e){
System.out.println("Exception " + e);
return false;
}
}
return false;
}
}
答案 0 :(得分:2)
添加
out.close();
之前return true;
从documentation开始,close
方法执行以下操作:
关闭流,先冲洗它。 流关闭后, 进一步的write()或flush()调用 将导致IOException 抛出。关闭之前关闭的 流没有效果。