2013-07-09 3 views
3

Я пытаюсь записать файл, который уже существует. Насколько я видел на форумах, этот код должен переписать старый файл, но вместо перезаписи он помещает имя файла в [] скобки и создает новый. Есть идеи?Вместо перезаписи создается новый файл

try { 
    File file = new File("/home/erik/glassfish3/" + selectedMss + ".ini"); 
    BufferedWriter output = new BufferedWriter(new FileWriter(file)); 
    for (String newline : content) { 
    output.write(newline + "\n"); 
    } 
    output.close(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 
+2

что selectedMss? –

+1

если выбраноMss - массив, то его .toString() будет иметь [] –

+2

@ChrisC Нет, это не так. Но если это 'ArrayList' или другая коллекция' java.util', то это будет. –

ответ

5

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

Я также рекомендовал бы закрыть запись в блоке finally.

Documentation

BufferedWriter output; 
try {     
    File file = new File("/home/erik/glassfish3/"+selectedMss+".ini"); 

    //Providing true for second argument specifies it should be appended. 
    output = new BufferedWriter(new FileWriter(file,true)); 

    for(String newline: content){ 
     output.write(newline+"\n");  
    } 

} catch (IOException e) { 
     e.printStackTrace(); 
}finally{ 
    output.close(); 
} 
+1

Как насчет * попробовать с ресурсами *? –

2

Попробуйте это:

try 
    { 
      File file = new File("/home/erik/glassfish3/" + selectedMss + ".ini"); 
      BufferedWriter output = new BufferedWriter(new FileWriter(file,false)); 
      //true to append  //false to overwrite. 

      for (String newline : content) 
      { 
        output.write(newline + "\n"); 
      } 
      output.close(); 
      catch (IOException e) 
      { 
        e.printStackTrace(); 
      } 
    } 

Вы также можете проверить Java документацию для более разъяснений:

http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html

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