2011-05-01 75 views
0

对于学校我必须做一个web服务作为练习的一部分。在这个程序中,我必须使用一个.txt文件作为数据库。当我使用BufferedWriter时,它表示信息已成功写入文件。但该文件仍未更改。从文件中读取进行得很顺利。提前致谢!写入到Java WebService的文本文件

代码:

@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

@Hippo指出仪式 - 关闭并正确刷新流。 – Deminem 2011-05-01 15:21:45

回答

2

添加

out.close(); 

之前,你return true;

documentation,该close方法执行以下操作:

关闭流,先冲洗它。 一旦流被关闭, 进一步写入()或flush()调用 将导致抛出IOException为 。关闭以前关闭的 流无效。