2015-11-25 2 views
1

код, показывающий массив:Текстовый файл продолжает удалять содержимое в файле. Как мне обойти это?

int i = 0; 
 
      
 
      try { 
 
      
 
       File fl = new File("Product List.txt"); 
 
       
 
       Scanner scn = new Scanner(fl); 
 
      
 
       while(scn.hasNext()) { 
 
       
 
        String productName = scn.next(); 
 
       
 
        double productPrice = scn.nextDouble(); 
 
       
 
        int productAmount = scn.nextInt(); 
 
       
 
        product[i] = new Products(productName,productPrice,productAmount); 
 
       
 
        i = i + 1; 
 
       
 
       } 
 
      
 
      } 
 
      
 
      catch(IOException exc) { 
 
      
 
      } 
 
//and this code to update contents 
 

 
try{ 
 
      
 
      Formatter writer = new Formatter("Product List.txt"); 
 
      
 
      for(int i = 0;i < productList.length;++i) { 
 
      
 
       prd.setQuantity(prd.getQuantity() - 1); 
 
       
 
       writer.format(prd.getProductName(),prd.getPrice(),prd.getQuantity(),"\n"); 
 
      
 
      } 
 
      
 
      writer.close(); 
 
      
 
     } 
 
      
 
     catch(IOException exc){ 
 
      
 
     }
Каждый раз, когда я запустить программу, она сохраняет удаление содержимого и к тому времени я достичь ту часть, где я должен обновить содержимое файла, файл пусто.

Как исправить эту ошибку времени выполнения?

+0

Вы действительно не должны молча игнорировать Исключения. Я бы поспорил, что если вы сделали exc.printStackTrace(); в вашей статье catch вы узнаете, в чем проблема. –

+0

Я попробую это спасибо –

ответ

1

От Javadoc:

общественного Formatter (String Filename) бросает FileNotFoundException конструирует новый форматировщик с указанным именем файла. Используемая кодировка является кодировкой по умолчанию для этого экземпляра виртуальной машины Java.

Используемый язык - это локаль по умолчанию для этого экземпляра виртуальной машины Java .

Параметры: fileName - имя файла, используемого в качестве адресата этого форматирования. Если файл существует, он будет усечен до нулевой размер; в противном случае будет создан новый файл. Выход будет записан в файл и буферизирован.

Поэтому я думаю, что вы должны загрузить весь контент файла в строковый конструктор, добавить следующий контент и записать его.

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

  • Нет связанных вопросов^_^