2012-03-06 1 views
0

У меня возникли проблемы с написанием этих деталей в файле. Я пытаюсь написать эту деталь в файле, но некоторые, как эта функция создает файл в определенном месте, но не записывает ничего в файл.Как написать детали в файл с помощью BufferedWriter и FileWriter в Java?

public void writeBillToFile(double amount , double billingAmount,double taxAmount, 
            double discount ,double transactionID , double billingNumber , 
            int customerID , String tableNumber ,ArrayList listObject ) 
    { 
     FileWriter fw=null ; 
     BufferedWriter bw =null; 
     Date d=new Date();   
     long currentTimestamp=d.getTime(); 
     try{ 

      fw = new FileWriter("D:/study/ADVANCE_JAVA/PrOgRaMs/WEB_APPS/00_COS-THE MEGA PROJECT/COS_March_03/GeneratedBill/bill"+currentTimestamp+".txt" , true);   
      bw= new BufferedWriter(fw); 

      System.out.println("Date and Time :: "+d.toString() +"\t Bill No :: "+billingNumber+"\t Transaction ID :: "+transactionID+"\n"); 
      bw.write("Date and Time :: "+d.toString() +" Bill No::"+billingNumber+" Transaction ID::"+transactionID); 
      bw.newLine(); 
      Iterator iteratorObject= listObject.iterator(); 
      while(iteratorObject.hasNext())   
      {   
       ItemInSessionModel itemObject = (ItemInSessionModel)iteratorObject.next(); 
       bw.write(itemObject.getItemName()+" "+itemObject.getItemQty()+"  "+itemObject.getItemRate()+"  "+(itemObject.getItemRate()*itemObject.getItemQty())); 
       bw.newLine(); 
      } 

      bw.write("Total Amount ::"+amount); 
      bw.newLine(); 
      bw.write("Discount  ::"+discount); 
      bw.newLine(); 
      bw.write("TAX   ::"+taxAmount); 
      bw.newLine(); 
      bw.write("Bill Amount ::"+billingAmount); 
      bw.newLine(); 
      bw.write("Thank You...!"); 
      System.out.println("Successfully Writen in File...!"); 
     }catch(Exception e) 
     { 
      System.out.println("Exception in FILE IO :: "+e); 
     } 
     finally 
     { 
      try{ 
      fw.close(); 
      bw.close(); 
      }catch(Exception e){} 
     } 
    } 

ответ

0

Ошибка вашего кода в том, что вы закрыли экземпляр FileWriter перед закрытием экземпляра BufferedWriter. Он будет работать, если вы просто поменяете положение bw.close() и fw.close(); Ваш окончательный блок должен выглядеть следующим образом:

finally 
{ 
    try 
    { 
     bw.close(); 
     fw.close(); 
    } 
    catch(Exception e) 
    {} 
} 
+0

Помочь мне написать код для печати того же файла? Я прошел через 2DPrinting учебник Oracle, но я хочу напечатать тот же самый файл txt, который я создал. так что вы можете мне помочь в этом? – CyberWorm

0

Try позвонить

bw.flush();

перед закрытием файла. Хорошая практика - очищать поток каждый раз, когда вы написали значительную часть данных. В вашем случае добавьте этот вызов в 2 места: в конец тела цикла while и после bw.write("Thank You...!").

Смежные вопросы